function drawEndGames($pageMode, $id, $rank, $endgameIds, $db) { $commentMap = getCommentsMap($db); ?> <style type="text/css"> .content { width:1250px; } #main { width:1250px; } .scoredetail td { text-align:center; } </style> <script type="text/javascript" src="js/wz_tooltip/wz_tooltip.js"></script> <script type="text/javascript"> function showTip( e, val, delay ) { if(!e) { Tip(val,DELAY,delay, FADEIN, 200, FADEOUT, 200); } else { // firefox and safari Tip(val,DELAY,delay, FADEIN, 200, FADEOUT, 200); } return true; } function clearTip() { UnTip(); return true; } </script> <div id="main" class='widetable'> <?php $roundMap = getRoundMap(); $seedMap = getSeedMap($db); $scoring = getHistoricalProbabilities(); $childGraph = getChildGraph(); if ($pageMode == "view_all" || $pageMode == "bracket" || $pageMode == "selected_end_games") { if ($pageMode == "view_all") { $bracket_query = "select count(*) num_paths from possible_scores p where rank='" . $rank . "' and p.`type`='path_to_victory'"; $bracket_data = mysql_query($bracket_query, $db) or die(mysql_error()); $bracket_data = mysql_fetch_array($bracket_data); } else { if ($pageMode == "selected_end_games") { $bracket_data['num_paths'] = count($endgameIds); } else { $probQuery = "SELECT `probability_win` FROM `probability_of_winning` WHERE `id` = '" . $id . "' and `rank`='" . $rank . "'"; $prob_data = mysql_query($probQuery, $db) or die(mysql_error()); $prob_data = mysql_fetch_array($prob_data); $pBracketWin = $prob_data['probability_win']; $bracket_query = "select name, count(*) num_paths, id from brackets b, possible_scores p where b.id = p.bracket_id and id ='" . $id . "' and rank='" . $rank . "' and p.`type`='path_to_victory' group by b.name"; $bracket_data = mysql_query($bracket_query, $db) or die(mysql_error()); $bracket_data = mysql_fetch_array($bracket_data); } } if ($pageMode == "view_all") { $titleText = "End Game Scenarios For Everyone"; } else { if ($pageMode == "selected_end_games") { $titleText = "Selected End Game Scenarios"; } else { $titleText = "End Game Scenarios For " . $bracket_data['name']; } } ?> <div class="full"> <h2><?php echo $titleText; ?> </h2> <h3> <?php echo $bracket_data['num_paths']; ?> possible paths to finish #<?php echo $rank; if ($pageMode == "bracket") { if ($pBracketWin) { echo ", Probability of winning: " . number_format($pBracketWin * 100, 2) . "%"; } } ?> </h3> </div> <div id="border" align="left"> <ul> <?php if ($pageMode == "bracket" || $pageMode == "view_all") { echo "<li><a href='endgamesummary.php'>Back to End Game Scenarios Summary</a></br>"; } ?> <?php if ($pageMode == "bracket") { echo "<li><a href='view.php?id=" . $id . "'>View Bracket</a>"; if ($commentMap[$id] > 0) { echo " <span class=\"recentComment\"><a href='view.php?id=" . $id . "#comments'> </a></span>"; } echo "</li>"; } ?> </ul> <?php $winners_query = "SELECT * FROM `master` WHERE `id`=2"; //winners $winners_data = mysql_query($winners_query, $db); $winners_data = mysql_fetch_array($winners_data); if ($pageMode == "view_all") { $end_game_query = "select b.id, e.id eid, score, name, e.`49`,e.`50`,e.`51`,e.`52`,e.`53`,e.`54`,e.`55`,e.`56`,e.`57`,e.`58`,e.`59`,e.`60`,e.`61`,e.`62`,e.`63` " . "from possible_scores p, brackets b, end_games e " . "where e.eliminated = false and p.bracket_id = b.id and e.id = outcome_id and e.round='7' and p.`type`='path_to_victory' and rank=" . $rank . " order by `name`, `63`,`62`,`61`,`60`,`59`,`58`,`57`,`56`,`55`,`54`,`53`,`52`,`51`,`50`,`49`, score"; } else { if ($pageMode == "selected_end_games") { $endgameList = "("; foreach ($endgameIds as $id) { $endgameList .= $id . ","; } $endgameList .= " -1)"; $end_game_query = "select b.id, e.id eid, score, name, e.`49`,e.`50`,e.`51`,e.`52`,e.`53`,e.`54`,e.`55`,e.`56`,e.`57`,e.`58`,e.`59`,e.`60`,e.`61`,e.`62`,e.`63` " . "from possible_scores p, brackets b, end_games e " . "where p.bracket_id = b.id and e.id = outcome_id and p.`type`='path_to_victory' and rank=" . $rank . " and outcome_id in " . $endgameList . " order by `name`, `63`,`62`,`61`,`60`,`59`,`58`,`57`,`56`,`55`,`54`,`53`,`52`,`51`,`50`,`49`, score"; } else { $end_game_query = "select e.id eid, score, name, e.`49`,e.`50`,e.`51`,e.`52`,e.`53`,e.`54`,e.`55`,e.`56`,e.`57`,e.`58`,e.`59`,e.`60`,e.`61`,e.`62`,e.`63` " . "from possible_scores p, brackets b, end_games e " . "where e.eliminated = false and b.id='" . $id . "' and p.`type`='path_to_victory'and p.bracket_id = b.id and e.id = outcome_id and e.round='7' and rank=" . $rank . " order by `63`,`62`,`61`,`60`,`59`,`58`,`57`,`56`,`55`,`54`,`53`,`52`,`51`,`50`,`49`"; } } $end_game_data = mysql_query($end_game_query, $db) or die(mysql_error()); echo "<table class='scoredetail' border='1' cellpadding='3'>"; echo "<tr class='tableheader'>\n"; echo "<td>#</td>"; if ($pageMode == "view_all" || $pageMode == "selected_end_games") { echo "<td>Winner</td>"; } echo "<td>Bracket Score</td>"; echo "<td colspan='8'>Sweet 16 Winners</td>"; echo "<td colspan='4'>Elite 8 Winners</td>"; echo "<td colspan='2'>Final 4 Winners</td>"; echo "<td>Champ</td>"; echo "<td>P(Win)</td>"; echo "</tr>"; $i = 1; while ($bracket = mysql_fetch_array($end_game_data)) { echo "<tr>\n"; echo "<td><a href='if.php?id=" . $bracket['eid'] . "'>" . $i . "</a></td>\n"; if ($pageMode == "view_all" || $pageMode == "selected_end_games") { echo "<td><a href='view.php?id=" . $bracket['id'] . "'>" . stripslashes($bracket['name']) . "</a>"; if ($commentMap[$bracket['id']] > 0) { echo " <span class=\"recentComment\"><a href='view.php?id=" . $bracket['id'] . "#comments'> </a></span>"; } echo "</td>\n"; } echo "<td>" . $bracket['score'] . "</td>\n"; $probability = 1; for ($j = 49; $j < 64; $j++) { if ($winners_data[$j] != NULL && $winners_data[$j] == $bracket[$j]) { echo "<td class='right'>" . $bracket[$j] . "</td>\n"; } else { // figure out the seed of the predicted loser // check the master bracket for the loser $loser = ""; $child[0] = $winners_data[$childGraph[$j][0]]; $child[1] = $winners_data[$childGraph[$j][1]]; $child[2] = $bracket[$childGraph[$j][0]]; $child[3] = $bracket[$childGraph[$j][1]]; foreach ($child as $team) { if ($team != null and $team != $bracket[$j]) { $loser = $team; break; } } //echo $roundMap[$j]." - ".$seedMap[$bracket[$j]].". ".$bracket[$j]." v ".$seedMap[$loser].". ".$loser." = ".$scoring[ $roundMap[$j] ][ $seedMap[$bracket[$j]] ][ $seedMap[$loser] ]."<br>"; $special = ""; $pWin = $scoring[$roundMap[$j]][$seedMap[$bracket[$j]]][$seedMap[$loser]]; if ($pWin == null || $pWin <= 0 || $pWin >= 1) { $special = " imputed (original: " . $pWin . ")"; $winSeed = $seedMap[$bracket[$j]]; $loseSeed = $seedMap[$loser]; $pWin = 1 - $winSeed / ($winSeed + $loseSeed); } echo "<td onmouseover=\"showTip(event,'" . $pWin . $special . "')\" onmouseout=\"clearTip()\" >" . $bracket[$j] . "</td>\n"; $probability *= $pWin; } } echo "<td onmouseover=\"showTip(event," . $probability . ")\" onmouseout=\"clearTip()\" >" . number_format($probability, 4) . "</td>"; echo "</tr>\n"; $i++; } echo "</table>\n"; } ?> </div> </div> <?php }
function createSummaryTable($db, $rank, $rankName, $viewAll, $totalScenarios, $sort) { ?> <style type="text/css"> .content { width:900px; } #main { width:900px; } .scoredetail td { text-align:center; } </style> <?php $commentMap = getCommentsMap($db); $bracketsQuery = "select b.id, name, email, p.probability_win pWin from brackets b, probability_of_winning p WHERE p.id = b.id and p.rank = '" . $rank . "'"; $bracketsData = mysql_query($bracketsQuery, $db) or die(mysql_error()); while ($b = mysql_fetch_array($bracketsData)) { $brackets[$b['id']] = array($b['name'], $b['email'], $b['pWin']); } $end_game_query = "select count(*) num_paths, bracket_id id from possible_scores p where eliminated=false and rank='" . $rank . "' and `type`='path_to_victory' group by bracket_id"; $end_game_data = mysql_query($end_game_query, $db) or die(mysql_error()); $sortedBrackets = array(); $i = 0; while ($bracket = mysql_fetch_array($end_game_data)) { if ($sort == "pwin") { $sortedBrackets[$i] = array($brackets[$bracket['id']][2], $bracket['num_paths'], $bracket['id'], $brackets[$bracket['id']][0], $brackets[$bracket['id']][1], $brackets[$bracket['id']][2]); } else { $sortedBrackets[$i] = array($bracket['num_paths'], $bracket['id'], $brackets[$bracket['id']][0], $brackets[$bracket['id']][1], $brackets[$bracket['id']][2]); } $i++; } $numBrackets = $i; rsort($sortedBrackets); $viewAllLink = ""; if ($viewAll == true) { $viewAllLink = " <a href='endgame.php?view_all=true&rank=" . $rank . "'>(View All)</a>\n"; } echo "<table cellpadding='1' border='1'>\n"; echo "<tr class='tableheader'><td colspan='3'><strong>" . $rankName . $viewAllLink . "</strong></td></tr>\n"; echo "<tr class='tableheader'><td>Bracket Name</td><td># of Paths<br>(Click to View)</td><td>p(W)</td></tr>\n"; // this is really ghetto $offset = 0; if ($sort == "pwin") { $offset = 1; } for ($i = 0; $i < $numBrackets; $i++) { $useremail = $sortedBrackets[$i][3 + $offset]; if ($useremail == $_COOKIE['useremail'] & $useremail != "") { echo '<tr class="thisuser">'; } else { echo "<tr>"; } echo "<td><a href='view.php?id=" . $sortedBrackets[$i][1 + $offset] . "'>" . stripslashes($sortedBrackets[$i][2 + $offset]) . "</a>"; if ($commentMap[$sortedBrackets[$i][1 + $offset]] > 0) { echo "<span class=\"recentComment\"><a href='view.php?id=" . $sortedBrackets[$i][1 + $offset] . "#comments'> </a></span>"; } echo "</td>\n"; if ((int) $sortedBrackets[$i][0 + $offset] < 1025) { echo "<td nowrap><a href='endgame.php?id=" . $sortedBrackets[$i][1 + $offset] . "&rank=" . $rank . "'>" . $sortedBrackets[$i][0 + $offset] . " (" . number_format(100 * ($sortedBrackets[$i][0 + $offset] / $totalScenarios), 0) . "%)</a></td><td>" . number_format(100 * $sortedBrackets[$i][4 + $offset], 2) . "%</td>\n\n"; } else { echo "<td nowrap>" . $sortedBrackets[$i][0 + $offset] . " (" . number_format(100 * ($sortedBrackets[$i][0 + $offset] / $totalScenarios), 0) . "%)</td><td>" . number_format(100 * $sortedBrackets[$i][4 + $offset], 2) . "%</td>\n\n"; } echo "</tr>"; } echo "</table>\n"; }
function drawScoringTable($db, $winners_data, $custompoints, $seedMap, $roundStart, $roundEnd, $roundNum, $tableWidth) { $totalPointsForRound = 0; $winnerListForRound = array(); $j = 0; // Get the winners for this round // Get the total points for this round for ($i = $roundStart; $i <= $roundEnd; $i++) { if ($winners_data[$i] != NULL) { $seedvalue = $seedMap[$winners_data[$i]]; $gameValue = $custompoints[$seedvalue][$roundNum]; $winnerListForRound[$j] = array($gameValue, $seedvalue, $i, $winners_data[$i]); $totalPointsForRound += $gameValue; $j++; } } // sort winners by reverse order of seed $numWinners = $j; if ($numWinners > 0) { rsort($winnerListForRound); // print out winners header echo "<a name='round" . $roundNum . "'>\r\n\t\t\t<a href='#top'>Top</a> |\r\n\t\t\t<a href='#round1'>First Round</a> | \r\n\t\t\t<a href='#round2'>Second Round</a> | \r\n\t\t\t<a href='#round3'>Sweet 16</a> | \r\n\t\t\t<a href='#round4'>Elite Eight</a> | \r\n\t\t\t<a href='#round5'>Final Four</a> | \r\n\t\t\t<a href='#round6'>Championship</a>"; echo "<table class='scoredetail' cellspacing='0' >\n"; echo "<tr class='tableheader'><td colspan='4'>Round " . $roundNum . "</td><td colspan='" . $numWinners . "'>Winners</td></tr>"; echo "<tr class='tableheader'><td>Bracket</td><td>T</td><td>R" . $roundNum . "</td><td>#</td>"; for ($i = 0; $i < $numWinners; $i++) { //$width = floor($winnerListForRound[$i][0]/$totalPointsForRound * $tableWidth); echo "<td onmouseover=\"showTeam( event, " . $winnerListForRound[$i][2] . ");\" onmouseout='clearTeam();'>" . $winnerListForRound[$i][1] . "<br>(" . $winnerListForRound[$i][0] . ")</td>"; } echo "</tr>"; $commentMap = getCommentsMap($db); // Now, get the list of brackets in score order $bracketsQuery = "SELECT scores.id, scores.name, scores.score, brackets.* FROM scores, \r\n\t\t\tbrackets WHERE scores.scoring_type='main' AND scores.id = brackets.id ORDER BY scores.score DESC, scores.name ASC"; $brackets = mysql_query($bracketsQuery, $db) or die(mysql_error()); $rank = 0; $rankCounter = 1; $totalScore = 0; $totalPointsEarnedByUsers = 0; $totalHitsByUsers = 0; while ($bracket = mysql_fetch_array($brackets)) { if ($rank == 0) { $top_score = $brackets['score']; $prev_score = $brackets['score']; $rankCounter = 1; $rank = $rankCounter; } if ($bracket['score'] != $prev_score) { $prev_score = $bracket['score']; $rank = $rankCounter; } $useremail = $bracket['email']; if ($useremail == $_COOKIE['useremail'] & $useremail != "") { echo '<tr class="thisuser">'; } else { echo "<tr>"; } // Simply allow anyone who is logged in to see the user name if (isset($_COOKIE['useremail']) == true) { echo "<td class='bracketname'><a href='view.php?id=" . $bracket['id'] . "'>" . $rank . ". " . stripslashes($bracket['name']) . "</a>" . " (" . stripslashes($bracket['person']) . ")"; } else { echo "<td class='bracketname'><a href='view.php?id=" . $bracket['id'] . "'>" . $rank . ". " . stripslashes($bracket['name']) . "</a>"; } if ($commentMap[$bracket['id']] > 0) { echo " <span class=\"recentComment\"><a href='view.php?id=" . $bracket['id'] . "#comments'> </a></span>"; } echo "</td><td>" . $bracket['score'] . "</td>"; $totalScore += $bracket['score']; $totalEarnedForRound = 0; $numHitsForRound = 0; for ($i = 0; $i < $numWinners; $i++) { if ($winnerListForRound[$i][3] == $bracket[$winnerListForRound[$i][2]]) { $status[$i] = "hit"; if ($winnerListForRound[$i][4] == NULL) { $winnerListForRound[$i][4] = 1; } else { $winnerListForRound[$i][4]++; } $totalEarnedForRound += $winnerListForRound[$i][0]; $numHitsForRound++; } else { $status[$i] = "miss"; } } echo "<td>" . $totalEarnedForRound . "</td>"; echo "<td>" . $numHitsForRound . "</td>"; $totalPointsEarnedByUsers += $totalEarnedForRound; $totalHitsByUsers += $numHitsForRound; for ($i = 0; $i < $numWinners; $i++) { echo "<td class='" . $status[$i] . "' onmouseover=\"showTeam( event," . $winnerListForRound[$i][2] . ");\" onmouseout='clearTeam();'> </td>"; } echo "</tr>"; $rankCounter++; } $avgPointsThisRound = round($totalPointsEarnedByUsers / ($rankCounter - 1), 2); $avgScore = round($totalScore / ($rankCounter - 1), 2); $avgHits = round($totalHitsByUsers / ($rankCounter - 1), 2); echo "<tr class='tablefooter'><td>Averages/Totals</td><td>" . $avgScore . "</td><td>" . $avgPointsThisRound . "</td><td>" . $avgHits . "</td>"; for ($i = 0; $i < $numWinners; $i++) { if (!$winnerListForRound[$i][4]) { $winnerListForRound[$i][4] = 0; } echo "<td onmouseover=\"showTeam( event," . $winnerListForRound[$i][2] . ");\" onmouseout='clearTeam();'>" . $winnerListForRound[$i][4] . "</td>"; } echo "</tr>"; echo "</table><br />\n"; } }
return $rankMap; } $closed = "SELECT closed FROM `meta` WHERE id=1 LIMIT 1"; $closed = mysql_query($closed, $db); //boolean if bracket submission is over $closed = @mysql_fetch_array($closed); //boolean if bracket submission is over if ($closed[0] == 1) { $query = 'SELECT * FROM `scores` WHERE `scoring_type`="main" ORDER BY `score` DESC, `name` ASC'; $result = mysql_query($query, $db) or die(mysql_error()); $scores; while ($user = mysql_fetch_array($result)) { $scores[] = $user; } $rankMap = getRanksForScores($scores); $commentMap = getCommentsMap($db); } if (isset($_COOKIE['useremail']) == false) { echo ' <h2>User Login</h2> <form action="getemail.php" method="post"> <p>Email Address: <input type="text" name="useremail" /> <input type="submit" value="Login"></p> </form>'; } else { $useremail = $_COOKIE['useremail']; $getuser = "******"; $result = mysql_query($getuser, $db); $myBrackets = "<table width='100%'>"; while ($bracket = mysql_fetch_array($result)) { $username = $bracket['person'];