static function get_game_pgn() { $result = '*'; $info = "[Event \"{$game_id}\"]\n[CustomFEN \"" . ChessHelper::get_custom_fen(ChessHelper::$game_id) . "\"]\n[Mode \"ICS\"]\n"; $stt = "SELECT `completion_status` FROM `game` WHERE `game_id`='" . ChessHelper::$game_id . "'"; $sttreturn = mysql_query($stt, CSession::$db_link) or die(mysql_error()); $sttnum = mysql_numrows($sttreturn); $status = mysql_result($sttreturn, 0, 0); if ($status == "W") { $result = "1-0"; } elseif ($status == "B") { $result = "0-1"; } elseif ($status == "D") { $result = "1/2-1/2"; } // $sti = "SELECT * FROM move_history WHERE game_id='" . $game_id . "' ORDER BY time ASC"; // $stireturn = mysql_query($sti, CSession::$db_link) or die(mysql_error()); // $stinum = mysql_numrows($stireturn); $stt22 = "SELECT `w_player_id`, `b_player_id` FROM `game` WHERE `game_id`='" . ChessHelper::$game_id . "'"; $sttreturn22 = mysql_query($stt22, CSession::$db_link) or die(mysql_error()); $sttnum22 = mysql_numrows($sttreturn22); $w_player_id = mysql_result($sttreturn22, 0, 'w_player_id'); $b_player_id = mysql_result($sttreturn22, 0, 'b_player_id'); $query = "SELECT `userid` FROM `player` WHERE `player_id` IN ({$w_player_id}, {$b_player_id})"; $return = mysql_query($query, CSession::$db_link) or die(mysql_error()); $num = mysql_numrows($return); if ($num == 2) { $whitename = trim(mysql_result($return, 0, 'userid')); $blackname = trim(mysql_result($return, 1, 'userid')); } // Self rating may not exist. Should something else be used? // $query = "SELECT `p_selfrating` FROM c4m_personalinfo WHERE p_playerid IN ($w_player_id, $b_player_id)"; // $return = mysql_query($query, CSession::$db_link) or die(mysql_error()); // if($num == 2) // { // $whiteELO = mysql_result($return, 0, 'p_selfrating'); // $blackELO = mysql_result($return, 1, 'p_selfrating'); // } $whiteELO = $blackELO = 0; $info .= "[Round \"" . ChessHelper::$CB->GetFullMoves() . "\"]\n[White \"{$whitename}\"]\n[Black \"{$blackname}\"]\n[WhiteELO \"{$whiteELO}\"]\n[BlackELO \"{$blackELO}\"]\n[Result \"{$result}\"]\n\n"; // Now construct the movelist. $moves = ChessHelper::$CB->GetMoveList(); $moveCounter = ChessHelper::$CB->GetStartingMoveNumber() + 1; $movestr = ''; foreach ($moves as $move) { if ($move->nSideMoved == PLAYER_SIDE::BLACK) { $movestr .= $move->szSAN . ' '; $moveCounter++; } else { $movestr .= "{$moveCounter}. " . $move->szSAN . ' '; } } if (count($moves) != 0) { $movestr .= "{$result}"; } else { $movestr .= "{$moveCounter}. {$result}"; } $info .= "{$movestr}"; return $info; }
function process_game_values($data) { $game_id = $data['instance']['game_id']; $data['instance']['board'] = $game_id; ChessHelper::load_chess_game($game_id); $ML = ChessHelper::$CB->GetMoveList(); $moves_san = array(); foreach ($ML as $move) { $moves_san[] = $move->szSAN; } //echo '<pre>';var_dump($moves_san);echo '</pre>'; $fen = ChessHelper::get_custom_fen($game_id); $data['instance']['board'] = array('moves_san' => $moves_san, 'fen' => $fen); //exit(); }