<body> <h1>Expected Win Rates</h1> <table border=1> <?php require "DB.php"; require "util.php"; error_reporting(E_ERROR | E_WARNING | E_PARSE); $db = DB::connect("mysql://*****:*****@localhost/games"); $sql = "select distinct name from scores order by name asc"; $q = $db->query($sql); $names = array(); $elo = array(); while ($q->fetchInto($r)) { $names[] = $r[0]; $elo[] = getELO($db, $r[0]); } echo "<tr><th>"; foreach ($names as $name) { echo "<th>{$name}"; } $i = 0; foreach ($names as $n1) { echo "<tr><th>{$n1}"; $j = 0; foreach ($names as $n2) { echo "<td align=center>"; if ($n1 == $n2) { echo " "; } else { $diff = $elo[$i] - $elo[$j];
$place = mysql_real_escape_string($_POST["place" . $i]); $score = mysql_real_escape_string($_POST["score" . $i]); $sql = "insert into scores (gameid, position, name, points) values ({$gameid}, {$place}, '{$name}', {$score})"; $db->query($sql); $names[] = $name; } } } $eloS = array(); $eloE = array(); foreach ($names as $n) { $eloS[] = getELO($db, $n); } calcAllELOs($db); foreach ($names as $n) { $eloE[] = getELO($db, $n); } ?> Game Edited! (I hope) <p> <?php for ($i = 0; $i < count($names); $i++) { $change = $eloE[$i] - $eloS[$i]; echo $names[$i] . ": " . ($change < 0 ? $change : "+" . $change) . "<br>"; } ?> <p> <a href="index.php">Go Home</a>
<head> <title>Games</title> </head> <body> <?php require "DB.php"; require "util.php"; error_reporting(E_ERROR | E_WARNING | E_PARSE); $db = DB::connect("mysql://*****:*****@localhost/games"); $names = array(); $elo = array(); $q = array(); foreach ($_POST as $name) { $names[] = $name; $elo[$name] = getELO($db, $name); $q[$name] = pow(10, $elo[$name] / 400); } $qsum = 0; foreach ($q as $qitem) { $qsum += $qitem; } $percent = array(); foreach ($names as $name) { $percent[$name] = $q[$name] / $qsum; } arsort($percent); ?> <h3>Predicted Result:</h3> <table border=1>
function calcAllELOs($db) { $sql = "delete from elo"; $db->query($sql); $games = getAllGameIDs($db); foreach ($games as $gameid) { $sql = "select name,position from scores where gameid='{$gameid}'"; $q1 = $db->query($sql); $names = array(); $match = new ELOMatch(); while ($q1->fetchInto($r1)) { $name = $r1[0]; $pos = $r1[1]; $elo = getELO($db, $name); $names[] = $name; $match->addPlayer($name, $pos, $elo); } $match->calculateELOs(); foreach ($names as $name) { $newELO = $match->getELO($name); $sql = "insert into elo (gameid,name,elo) values ({$gameid}, '{$name}', {$newELO})"; $db->query($sql); } } }