//get current game info to display player data $oR3DCQuery->GetCurrentGameInfoByRef($config, $gid, $initiator, $w_player_id, $b_player_id, $next_move, $start_time); //get the information for the white player and put it in a div $image = $oR3DCQuery->GetAvatarImageName($w_player_id); if ($image != "") { $image = "<img src='./avatars/" . $image . "'>"; } else { $image = "<img src='./avatars/noimage.jpg'>"; } $userid = $oR3DCQuery->GetUserIDByPlayerID($config, $w_player_id); $wins = 0; $loss = 0; $draws = 0; $oR3DCQuery->GetPlayerStatusrRefByPlayerID($config, $w_player_id, $wins, $loss, $draws); if ($oR3DCQuery->ELOIsActive()) { $points = $oR3DCQuery->ELOGetRating($w_player_id); } else { $points = $oR3DCQuery->GetPointValue($wins, $loss, $draws); } $whitediv = "\n\t<div id=\"whiteclock\"></div>\n\t<div class=\"avatar\">{$image}</div>\n\t<div class=\"userid\">{$userid}</div>\n\t<div class=\"points\">{$points}</div>\n\t"; //get the information for the white player and put it in a div $image = $oR3DCQuery->GetAvatarImageName($b_player_id); if ($image != "") { $image = "<img src='./avatars/" . $image . "'>"; } else { $image = "<img src='./avatars/noimage.jpg'>"; } $userid = $oR3DCQuery->GetUserIDByPlayerID($config, $b_player_id); $wins = 0; $loss = 0; $draws = 0;
function mobile_movehmm($config) { if ($_GET['gameid'] != "" && $_GET['from'] != "" && $_GET['to'] != "") { //Instantiate theCR3DCQuery Class $oR3DCQuery = new CR3DCQuery($config); $xsid = $_GET['sid']; $session = base64_decode($xsid); list($uniq, $player_id) = preg_split("/\\|/", $session); $movefrom = $_GET['from']; $moveto = $_GET['to']; $bmove_error = false; //Create Move String $movestr = $movefrom . "," . $moveto; $movestr2 = $movefrom . "-" . $moveto; // get the fen for the game $fen = $oR3DCQuery->GetHackedFEN($xsid, $_GET['gameid']); //$fen3 = $oR3DCQuery->GetHackedFEN($xsid, $_GET['gameid']); $bturn = $oR3DCQuery->IsPlayersTurn($config, $player_id, $_GET['gameid']); echo "FEN: {$fen}<br/>"; ChessHelper::load_chess_game($_GET['gameid']); $turn = $fen = ChessHelper::$CB->GetFENForCurrentPosition(); echo "FEN: {$fen}<br/>"; if ($bturn) { //check to see if the move is valid if (is_Move_legal($fen, $movestr2)) { $oR3DCQuery->CurrentGameMovePiece($config, $_GET['gameid'], $xsid, $player_id, $movestr); $initiator = ""; $w_player_id = ""; $b_player_id = ""; $status = ""; $completion_status = ""; $start_time = ""; $next_move = ""; $oR3DCQuery->GetGameInfoByRef($config, $_GET['gameid'], $initiator, $w_player_id, $b_player_id, $status, $completion_status, $start_time, $next_move); //checkmate if (get_GameState() == 1) { //if($w_player_id == $player_id){ if ($next_move == 'w') { /////////////////////////////////////////////////////////////////////// //ELO Point Calculation if ($oR3DCQuery->ELOIsActive() && $oR3DCQuery->IsGameRated($_GET['gameid'])) { $bcurpoints = $oR3DCQuery->ELOGetRating($b_player_id); $wcurpoints = $oR3DCQuery->ELOGetRating($w_player_id); //Calculate black player $bnewpoints = $oR3DCQuery->ELOCalculation($bcurpoints, $wcurpoints, 1, 1, $oR3DCQuery->GetPlayerGameCount($b_player_id)); //Calculate white player $wnewpoints = $oR3DCQuery->ELOCalculation($wcurpoints, $bcurpoints, 0, 1, $oR3DCQuery->GetPlayerGameCount($w_player_id)); //update points $oR3DCQuery->ELOUpdateRating($b_player_id, $bnewpoints); $oR3DCQuery->ELOUpdateRating($w_player_id, $wnewpoints); } /////////////////////////////////////////////////////////////////////// $oR3DCQuery->UpdateGameStatus($config, $_GET['gameid'], "C", "B"); } else { /////////////////////////////////////////////////////////////////////// //ELO Point Calculation if ($oR3DCQuery->ELOIsActive() && $oR3DCQuery->IsGameRated($_GET['gameid'])) { $bcurpoints = $oR3DCQuery->ELOGetRating($b_player_id); $wcurpoints = $oR3DCQuery->ELOGetRating($w_player_id); //Calculate black player $bnewpoints = $oR3DCQuery->ELOCalculation($bcurpoints, $wcurpoints, 0, 1, $oR3DCQuery->GetPlayerGameCount($b_player_id)); //Calculate white player $wnewpoints = $oR3DCQuery->ELOCalculation($wcurpoints, $bcurpoints, 1, 1, $oR3DCQuery->GetPlayerGameCount($w_player_id)); //update points $oR3DCQuery->ELOUpdateRating($b_player_id, $bnewpoints); $oR3DCQuery->ELOUpdateRating($w_player_id, $wnewpoints); } /////////////////////////////////////////////////////////////////////// $oR3DCQuery->UpdateGameStatus($config, $_GET['gameid'], "C", "W"); } $oR3DCQuery->CachePlayerPointsByPlayerID($b_player_id); $oR3DCQuery->CachePlayerPointsByPlayerID($w_player_id); } else { if (get_GameState() == 2) { /////////////////////////////////////////////////////////////////////// //ELO Point Calculation if ($oR3DCQuery->ELOIsActive() && $oR3DCQuery->IsGameRated($_GET['gameid'])) { $bcurpoints = $oR3DCQuery->ELOGetRating($b_player_id); $wcurpoints = $oR3DCQuery->ELOGetRating($w_player_id); //Calculate black player $bnewpoints = $oR3DCQuery->ELOCalculation($bcurpoints, $wcurpoints, 0.5, 1, $oR3DCQuery->GetPlayerGameCount($b_player_id)); //Calculate white player $wnewpoints = $oR3DCQuery->ELOCalculation($wcurpoints, $bcurpoints, 0.5, 1, $oR3DCQuery->GetPlayerGameCount($w_player_id)); //update points $oR3DCQuery->ELOUpdateRating($b_player_id, $bnewpoints); $oR3DCQuery->ELOUpdateRating($w_player_id, $wnewpoints); } /////////////////////////////////////////////////////////////////////// $oR3DCQuery->UpdateGameStatus($config, $_GET['gameid'], "C", "D"); $bmove_error = false; $oR3DCQuery->CachePlayerPointsByPlayerID($b_player_id); $oR3DCQuery->CachePlayerPointsByPlayerID($w_player_id); } } } else { $bmove_error = true; } } else { $bmove_error = true; } $oR3DCQuery->Close(); unset($oR3DCQuery); } else { $bmove_error = true; } if ($bmove_error) { echo "<RESPONSE>\n"; echo "<MOVE>false</MOVE>\n"; echo "</RESPONSE>\n"; } else { echo "<RESPONSE>\n"; echo "<MOVE>true</MOVE>\n"; mobile_get_full_game_update(); echo "<LASTMOVE>" . ChessHelper::get_last_move() . "</LASTMOVE>"; echo "</RESPONSE>\n"; } }
$oR3DCQuery->CheckSIDTimeout(); if ($oR3DCQuery->CheckLogin($config, $_SESSION['sid']) == false) { $_SESSION['PageRef'] = $url; header('Location: ./chess_login.php'); } else { $_SESSION['PageRef'] = ""; $oR3DCQuery->UpdateSIDTimeout($ConfigFile, $_SESSION['sid']); $oR3DCQuery->SetPlayerCreditsInit($_SESSION['id']); if (!isset($_SESSION['point_cached'])) { ///////////////////////////////////////////// // Point caching ///////////////////////////////////////////// $oR3DCQuery->GetPlayerStatusrRefByPlayerID($ConfigFile, $_SESSION['id'], $x_wins, $x_loss, $x_draws); $xPoints = 0; if ($oR3DCQuery->ELOIsActive()) { $xPoints = $oR3DCQuery->ELOGetRating($_SESSION['id']); } else { $xPoints = $oR3DCQuery->GetPointValue($x_wins, $x_loss, $x_draws); } $oR3DCQuery->SetChessPointCacheData($_SESSION['id'], $xPoints); ///////////////////////////////////////////// $_SESSION['point_cached'] = true; } } if (!$bCronEnabled) { if ($oR3DCQuery->ELOIsActive()) { $oR3DCQuery->ELOCreateRatings(); } $oR3DCQuery->MangeGameTimeOuts(); } }