Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Require other files for validation and generation.
- require 'pieces/pawn.php';
- require 'pieces/knight.php';
- require 'pieces/bishop.php';
- require 'pieces/rook.php';
- require 'pieces/queen.php';
- require 'pieces/king.php';
- // require 'unused/chat.php';
- function dbConnection(){
- // The database credentials.
- $server = "localhost";
- $username = "";
- $password = "";
- $database = "";
- // Create a connection that we can use to get and set database from/to the mysql database.
- $conn = mysqli_connect($server, $username, $password, $database);
- if (!$conn){
- die ("database connection failed: ".mysqli_connect_error());
- }
- return $conn;
- }
- function saveBoard($game_id, $piece_positions){
- $db = dbConnection();
- $stmt = $db->prepare("UPDATE `games` SET piece_positions=? WHERE id=?;");
- //adapted from http://stackoverflow.com/questions/383631/json-encode-mysql-results
- ///////////////////////////////// I accidently loads the pieces positions without json decoding them first cuasing a massive error ///////////////////
- $stmt->bind_param("ss", json_encode($piece_positions), $game_id);
- // Execute the query and store the result in a result object variable
- $stmt->execute();
- return TRUE;
- /*
- $stmt_1->bind_param("s", json_encode($piece_positions));
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($conn, $sql);
- $the_game = $result->fetch_assoc();
- // Call our board generator function
- $piece_positions = $the_game['piece_positions'];
- return $piece_positions;*/
- }
- function saveTurn($game_id, $turn){
- $db = dbConnection();
- $stmt = $db->prepare("UPDATE `games` SET player_turn=? WHERE id=?;");
- $stmt->bind_param("ss", $turn, $game_id);
- $stmt->execute();
- return TRUE;
- }
- function loadBoard($game_id){
- $db = dbConnection();
- $sql = "SELECT * FROM games WHERE id='$game_id';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_game = $result->fetch_assoc();
- // Call our board generator function
- $piece_positions = $the_game['piece_positions'];
- //adapted from http://php.net/manual/en/function.json-decode.php
- $piece_positions = json_decode($piece_positions, TRUE);
- return $piece_positions;
- }
- function loadTurn($game_id){
- $db = dbConnection();
- $sql = "SELECT * FROM games WHERE id='$game_id';";
- $result = mysqli_query($db, $sql);
- $the_game = $result->fetch_assoc();
- $turn = $the_game['player_turn'];
- return $turn;
- }
- function loadTurnId($game_id, $turn){
- $db = dbConnection();
- $sql = "SELECT * FROM users_games WHERE game_id='$game_id';";
- $result = mysqli_query($db, $sql);
- $the_game = $result->fetch_assoc();
- $turn_id = $the_game['white_user_id'];
- $turn_id = $the_game['black_user_id'];
- return $turn;
- }
- /*
- * This function will find out what piece is being moved and then run the appropriate logic to determine if the move is
- * a legitimate move.
- */
- function validateMove($source, $destination, $piece, $piece_positions)
- {
- switch ($piece) {
- case 'WLR':
- return validRookMove($source, $destination, $piece);
- break;
- case 'WLN':
- return validKNightMove($source, $destination);
- break;
- case 'WLB':
- return validBishopMove($source, $destination);
- break;
- case 'WRR':
- return validRookMove($source, $destination, $piece);
- break;
- case 'WRN':
- return validKNightMove($source, $destination);
- break;
- case 'WRB':
- return validBishopMove($source, $destination);
- break;
- case 'WQ':
- return validQueenMove($source, $destination, $piece);
- break;
- case 'WK':
- return validKingMove($source, $destination);
- break;
- case 'WAP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WBP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WCP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WDP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WEP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WFP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WGP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'WHP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- //black pieces
- case 'BLR':
- return validRookMove($source, $destination, $piece);
- break;
- case 'BLN':
- return validKNightMove($source, $destination);
- break;
- case 'BLB':
- return validBishopMove($source, $destination);
- break;
- case 'BRR':
- return validRookMove($source, $destination, $piece);
- break;
- case 'BRN':
- return validKNightMove($source, $destination);
- break;
- case 'BRB':
- return validBishopMove($source, $destination);
- break;
- case 'BQ':
- return validQueenMove($source, $destination, $piece);
- break;
- case 'BK':
- return validKingMove($source, $destination);
- break;
- case 'BAP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BBP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BCP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BDP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BEP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BFP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BGP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- case 'BHP':
- return validPawnMove($source, $destination, $piece, $piece_positions);
- break;
- default:
- return FALSE;
- }
- }
- function getSqreCol($b_file, $b_rank)
- {
- $lightSqre = ['A1', 'C1', 'E1', 'G1',
- 'B2', 'D2', 'F2', 'H2',
- 'A3', 'C3', 'E3', 'G3',
- 'B4', 'D4', 'F4', 'H4',
- 'A5', 'C5', 'E5', 'G5',
- 'B6', 'D6', 'F6', 'H6',
- 'A7', 'C7', 'E7', 'G7',
- 'B8', 'D8', 'F8', 'H8'
- ];
- $darkSqre = ['B1', 'D1', 'F1', 'H1',
- 'A2', 'C2', 'E2', 'G2',
- 'B3', 'D3', 'F3', 'H3',
- 'A4', 'C4', 'E4', 'G4',
- 'B5', 'D5', 'F5', 'H5',
- 'A6', 'C6', 'E6', 'G6',
- 'B7', 'D7', 'F7', 'H7',
- 'A8', 'C8', 'E8', 'G8'
- ];
- if (in_array($b_file . $b_rank, $darkSqre)) {
- echo "<div style='background-color:" . getDarkSquareColour() . "; width:50px; height:50px; display:inline-block;'>";
- } else if (in_array($b_file . $b_rank, $lightSqre)) {
- echo "<div style='background-color:" . getLightSquareColour() . "; width:50px; height:50px; display:inline-block;'>";
- } else {
- echo "<div style='display:inline-block;'>";
- }
- }
- // A function that takes the letter of a square and a number of a square and the current position of pieces inorder to draw the board.
- function getPeice($b_file, $b_rank, $piece_positions)
- {
- // It first checks if there is a piece in the square it is looking at if not it will print a blank square.
- if (array_key_exists($b_file . $b_rank, $piece_positions)) {
- // If there is a piece it will get the ID of the piece from the array
- $the_piece = $piece_positions[$b_file . $b_rank];
- // It will then use this ID to load the correct artwork for the piece
- switch ($the_piece) {
- //White pieces
- case 'WLR':
- echo "<img src='imgs/waRook.png'>";
- break;
- case 'WLN':
- echo "<img src='imgs/wKnight.png'>";
- break;
- case 'WLB':
- echo "<img src='imgs/wBishop.png'>";
- break;
- case 'WRR':
- echo "<img src='imgs/waRook.png'>";
- break;
- case 'WRN':
- echo "<img src='imgs/wKnight.png'>";
- break;
- case 'WRB':
- echo "<img src='imgs/wBishop.png'>";
- break;
- case 'WQ':
- echo "<img src='imgs/wQueen.png'>";
- break;
- case 'WK':
- echo "<img src='imgs/wKing.png'>";
- break;
- case 'WAP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WBP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WCP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WDP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WEP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WFP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WGP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- case 'WHP':
- echo "<img src='imgs/wPawn.png'>";
- break;
- //black pieces
- case 'BLR':
- echo "<img src='imgs/baRook.png'>";
- break;
- case 'BLN':
- echo "<img src='imgs/bKnight.png'>";
- break;
- case 'BLB':
- echo "<img src='imgs/bBishop.png'>";
- break;
- case 'BRR':
- echo "<img src='imgs/bhRook.png'>";
- break;
- case 'BRN':
- echo "<img src='imgs/bKnight.png'>";
- break;
- case 'BRB':
- echo "<img src='imgs/bBishop.png'>";
- break;
- case 'BQ':
- echo "<img src='imgs/bQueen.png'>";
- break;
- case 'BK':
- echo "<img src='imgs/bKing.png'>";
- break;
- case 'BAP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BBP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BCP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BDP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BEP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BFP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BGP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- case 'BHP':
- echo "<img src='imgs/bPawn.png'>";
- break;
- default:
- echo "<img src='imgs/boardPlaceholder.png'>";
- }
- } else {
- echo "<img src='imgs/boardPlaceholder.png'>";
- }
- }
- // This function is called when we want to clear the board or set it back to its default setup
- // it just overwrites all of thep pieces in the piece position array.
- function defaultBoard()
- {
- //create a collection of chess peices
- $piece_positions = array(
- //white pieces
- 'A1' => 'WLR',
- 'B1' => 'WLN',
- 'C1' => 'WLB',
- 'D1' => 'WQ',
- 'E1' => 'WK',
- 'F1' => 'WRB',
- 'G1' => 'WRN',
- 'H1' => 'WRR',
- 'A2' => 'WAP',
- 'B2' => 'WBP',
- 'C2' => 'WCP',
- 'D2' => 'WDP',
- 'E2' => 'WEP',
- 'F2' => 'WFP',
- 'G2' => 'WGP',
- 'H2' => 'WHP',
- // Other squares
- 'A3' => '',
- 'B3' => '',
- 'C3' => '',
- 'D3' => '',
- 'E3' => '',
- 'F3' => '',
- 'G3' => '',
- 'H3' => '',
- 'A4' => '',
- 'B4' => '',
- 'C4' => '',
- 'D4' => '',
- 'E4' => '',
- 'F4' => '',
- 'G4' => '',
- 'H4' => '',
- 'A5' => '',
- 'B5' => '',
- 'C5' => '',
- 'D5' => '',
- 'E5' => '',
- 'F5' => '',
- 'G5' => '',
- 'H5' => '',
- 'A6' => '',
- 'B6' => '',
- 'C6' => '',
- 'D6' => '',
- 'E6' => '',
- 'F6' => '',
- 'G6' => '',
- 'H6' => '',
- //Black pieces
- 'A8' => 'BLR',
- 'B8' => 'BLN',
- 'C8' => 'BLB',
- 'D8' => 'BQ',
- 'E8' => 'BK',
- 'F8' => 'BRB',
- 'G8' => 'BRN',
- 'H8' => 'BRR',
- 'A7' => 'BAP',
- 'B7' => 'BBP',
- 'C7' => 'BCP',
- 'D7' => 'BDP',
- 'E7' => 'BEP',
- 'F7' => 'BFP',
- 'G7' => 'BGP',
- 'H7' => 'BHP'
- );
- return $piece_positions;
- }
- function translateLetterToNumber($letter)
- {
- switch ($letter) {
- case 'A':
- $number = 1;
- break;
- case 'B':
- $number = 2;
- break;
- case 'C':
- $number = 3;
- break;
- case 'D':
- $number = 4;
- break;
- case 'E':
- $number = 5;
- break;
- case 'F':
- $number = 6;
- break;
- case 'G':
- $number = 7;
- break;
- case 'H':
- $number = 8;
- break;
- }
- return $number;
- }
- function translateNumberToLetter($number)
- {
- switch ($number) {
- case '1':
- $letter = "A";
- break;
- case '2':
- $letter = "B";
- break;
- case '3':
- $letter = "C";
- break;
- case '4':
- $letter = "D";
- break;
- case '5':
- $letter = "E";
- break;
- case '6':
- $letter = "F";
- break;
- case '7':
- $letter = "G";
- break;
- case '8':
- $letter = "H";
- break;
- }
- return $letter;
- }
- function allowDaigonalMovement($source_letter_number, $destination_letter_number, $source_number, $destination_number)
- {
- // We use if logic to figure out if source or destination is bigger.
- if ($source_letter_number > $destination_letter_number) {
- // Find the difference between the source letter and destination letter
- $letter_difference = $source_letter_number - $destination_letter_number;
- } else {
- // Find the difference between the source letter and destination letter
- $letter_difference = $destination_letter_number - $source_letter_number;
- }
- // We use if logic to figure out if source or destination is bigger.
- if ($source_number > $destination_number) {
- // Find the difference between the source number and destination number
- $number_difference = $source_number - $destination_number;
- } else {
- // Find the difference between the source number and destination number
- $number_difference = $destination_number - $source_number;
- }
- // If the number changed the at the exact same amount as the letter we know the piece moved diagonally on the board.
- if ($letter_difference == $number_difference) {
- return TRUE;
- } else {
- return FALSE;
- }
- }
- function allowOnlyOneSpace($source_letter_number, $destination_letter_number, $source_number, $destination_number)
- {
- // We use if logic to figure out if source or destination is bigger.
- if ($source_letter_number > $destination_letter_number) {
- // Find the difference between the source letter and destination letter
- $letter_difference = $source_letter_number - $destination_letter_number;
- } else {
- // Find the difference between the source letter and destination letter
- $letter_difference = $destination_letter_number - $source_letter_number;
- }
- // We use if logic to figure out if source or destination is bigger.
- if ($source_number > $destination_number) {
- // Find the difference between the source number and destination number
- $number_difference = $source_number - $destination_number;
- } else {
- // Find the difference between the source number and destination number
- $number_difference = $destination_number - $source_number;
- }
- // Make sure the change is only one space.
- if ($letter_difference > 1 || $number_difference > 1) {
- return FALSE;
- } else
- {
- return TRUE;
- }
- }
- function allowHorizontalMovement($source_number, $destination_number)
- {
- if ($source_number == $destination_number) {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
- function allowVerticalMovement($source_letter, $destination_letter)
- {
- if ($source_letter == $destination_letter) {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
- function detectColision($source ,$destination,$piece_positions){
- // Initialise some variables we are going to use through out
- $source_letter = substr($source, 0, 1);
- $source_number = substr($source, 1, 1);
- $destination_letter = substr($destination, 0, 1);
- $destination_number = substr($destination, 1, 1);
- if ( $source_letter == $destination_letter || $source_number == $destination_number ){
- if( $source_letter == $destination_letter ){
- $move_direction = "vertical";
- } else if ( $source_number == $destination_number ){
- $move_direction = "horizontal";
- }
- } else {
- $move_direction = "diagonal";
- }
- if ( $move_direction == "vertical" ){
- if ( $destination_number > $source_number ){
- $move_up_down = "up";
- } else {
- $move_up_down = "down";
- }
- while ( $source_number != $destination_number){
- if ( $move_up_down == "up" ){
- $source_number++;
- } else {
- $source_number--;
- }
- if (isset($piece_positions[$source_letter.$source_number]) && $piece_positions[$source_letter.$source_number] != ""){
- return $source_letter.$source_number;
- }
- }
- }
- if ( $move_direction == "horizontal" ){
- // We need to translate the source letter into a number for easier processing.
- $source_letter_number = translateLetterToNumber($source_letter);
- // We need to translate the destination letter into a number for easier processing.
- $destination_letter_number = translateLetterToNumber($destination_letter);
- if ( $destination_letter_number > $source_letter_number){
- $move_left_right = "right";
- } else {
- $move_left_right = "left";
- }
- while ( $source_letter_number != $destination_letter_number){
- if ( $move_left_right == "right" ){
- $source_letter_number++;
- } else {
- $source_letter_number--;
- }
- $source_letter = translateNumberToLetter($source_letter_number);
- if (isset($piece_positions[$source_letter.$source_number]) && $piece_positions[$source_letter.$source_number] != ""){
- return $source_letter.$source_number;
- }
- }
- }
- if ( $move_direction == "diagonal" ){
- // We need to translate the source letter into a number for easier processing.
- $source_letter_number = translateLetterToNumber($source_letter);
- // We need to translate the destination letter into a number for easier processing.
- $destination_letter_number = translateLetterToNumber($destination_letter);
- if($destination_letter_number > $source_letter_number && $destination_number > $source_number){
- $direction = "top_right";
- }
- if ($destination_letter_number > $source_letter_number && $destination_number < $source_number){
- $direction = "bottom_right";
- }
- if($destination_letter_number < $source_letter_number && $destination_number > $source_number){
- $direction = "top_left";
- }
- if ($destination_letter_number < $source_letter_number && $destination_number < $source_number){
- $direction = "bottom_left";
- }
- while ($source_letter_number != $destination_letter_number && $source_number != $destination_number){
- if ($direction == "top_right"){
- $source_letter_number++;
- $source_number++;
- }
- if ($direction == "bottom_right"){
- $source_letter_number++;
- $source_number--;
- }
- if ($direction == "top_left"){
- $source_letter_number--;
- $source_number++;
- }
- if ($direction == "bottom_left"){
- $source_letter_number--;
- $source_number--;
- }
- $source_letter = translateNumberToLetter($source_letter_number);
- if (isset($piece_positions[$source_letter.$source_number]) && $piece_positions[$source_letter.$source_number] != ""){
- return $source_letter.$source_number;
- }
- }
- }
- return FALSE;
- }
- function takePiece($colision, $piece_positions, $colour){
- $the_piece = $piece_positions[$colision];
- //problem was substr($the_piece, 1, 1) should have started at 0 instead of 1
- if(substr($the_piece, 0, 1) == "W"){
- if($colour == "white"){
- return FALSE;
- } else {
- return TRUE;
- }
- } else if(substr($the_piece, 0, 1) == "B"){
- if($colour == "black"){
- return FALSE;
- } else {
- return TRUE;
- }
- }
- }
- function getUsername($user_id){
- $db = dbConnection();
- $sql = "SELECT * FROM users WHERE id=" . $user_id . ";";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- ////////////////////////////// database error showing accidently requesting user_id instead of id ///////////////////////////
- /*var_dump(mysqli_error($db));
- die();*/
- /*var_dump($result);
- die();*/
- $the_user = $result->fetch_assoc();
- // Execute the query and store the result in a result object variable
- return $the_user['username'];
- }
- // function for text colour metrics
- // colours come in as array with 3 values red, blue and green.
- function getFontColour(){
- $user_id = $_SESSION['user_id'];
- $db = dbConnection();
- $sql = "SELECT * FROM user_options WHERE user_id='$user_id';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_user_settings = $result->fetch_assoc();
- // Call our board generator function
- $font_colour = $the_user_settings['font_colour'];
- return $font_colour;
- }
- function getFontSize(){
- $user_id = $_SESSION['user_id'];
- $db = dbConnection();
- $sql = "SELECT * FROM user_options WHERE user_id='$user_id';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_user_settings = $result->fetch_assoc();
- // Call our board generator function
- $font_size = $the_user_settings['font_size'];
- return $font_size;
- }
- function getBackgroundColour(){
- $user_id = $_SESSION['user_id'];
- $db = dbConnection();
- $sql = "SELECT * FROM user_options WHERE user_id='$user_id';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_user_settings = $result->fetch_assoc();
- // Call our board generator function
- $background_colour = $the_user_settings['background_colour'];
- return $background_colour;
- }
- function getDarkSquareColour() {
- $user_id = $_SESSION['user_id'];
- $db = dbConnection();
- $sql = "SELECT * FROM user_options WHERE user_id='$user_id';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_user_settings = $result->fetch_assoc();
- // Call our board generator function
- $dark_square = $the_user_settings['dark_square'];
- return $dark_square;
- }
- function getLightSquareColour() {
- $user_id = $_SESSION['user_id'];
- $db = dbConnection();
- $sql = "SELECT * FROM user_options WHERE user_id='$user_id';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_user_settings = $result->fetch_assoc();
- // Call our board generator function
- $light_square = $the_user_settings['light_square'];
- return $light_square;
- }
- function checkCheck($piece_positions, $player_turn){
- if ($player_turn == "black"){
- foreach ($piece_positions as $position => $piece) {
- // var_dump($piece);
- if ($piece == "BK"){
- if (kingCheckedByPiece($position, $piece_positions, $player_turn)) {
- $check_checkmate = kingCheckmatedByPiece($position, $piece_positions, $player_turn);
- if ($check_checkmate == TRUE){
- return "CHECKMATE";
- }
- return TRUE;
- }
- }
- }
- } else if ($player_turn == "white"){
- foreach ($piece_positions as $position => $piece) {
- /*var_dump($piece);*/
- if ($piece == "WK"){
- if (kingCheckedByPiece($position, $piece_positions, $player_turn)) {
- $check_checkmate = kingCheckmatedByPiece($position, $piece_positions, $player_turn);
- if ($check_checkmate == TRUE){
- return "CHECKMATE";
- }
- return TRUE;
- }
- }
- }
- }
- return FALSE;
- }
- function checkPawnPromotion($piece_positions, $player_turn){
- $top = ['A8', 'B8', 'C8', 'D8', 'E8', 'F8', 'G8', 'H8'];
- $bottom = ['A1', 'B1', 'C1', 'D1', 'E1', 'F1', 'G1', 'H1'];
- $white_pawns = ['WAP','WBP','WCP','WDP','WEP','WFP','WGP','WHP'];
- $black_pawns = ['BAP','BBP','BCP','BDP','BEP','BFP','BGP','BHP'];
- if ($player_turn == "black"){
- foreach ($top as $t) {
- if (isset($piece_positions[$t]) && in_array($piece_positions[$t], $white_pawns)) {
- return $piece_positions[$t];
- }
- }
- } else if ($player_turn == "white") {
- foreach ($bottom as $b) {
- if (isset($piece_positions[$b]) && in_array($piece_positions[$b], $black_pawns)){
- return $piece_positions[$b];
- }
- }
- }
- }
- function getColourOfPlayer($game_id) {
- $logged_in_user = $_SESSION['user_id'];
- $conn = dbConnection();
- // Prepare a sql statement that will check for games we have against users where the status is in progress.
- $stmt = $conn->prepare("SELECT * FROM users_games WHERE game_id = ?");
- // Bind our user ID to both black and white sides.
- $stmt->bind_param("s", $game_id);
- // Execute the query
- $stmt->execute();
- // Store the result in a result object variable
- $res = $stmt->get_result();
- // For each game in the array
- while($row = $res->fetch_assoc()){
- // If our user id is the same as the games white user id.
- if($logged_in_user == $row['white_user_id']) {
- // our colour is white
- return "white";
- }
- // If our user id is the same as the games black user id.
- if($logged_in_user == $row['black_user_id']) {
- // our colour is black
- return "black";
- }
- }
- }
- function castleKingSide($source, $destination, $piece_positions) {
- if ($source == "E8") {
- $colour = 'black';
- } else if ($source == "E1") {
- $colour = 'white';
- }
- $db = dbConnection();
- //$sql = "SELECT * FROM games WHERE id='$_SESSION['game_id']';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_game = $result->fetch_assoc();
- if ($colour == 'black') {
- if(isset($piece_positions['H8']) && $piece_positions['H8'] == "BRR") {
- if ($the_game['BRR_moved'] == '0' && $the_game['BK_moved'] == '0'){
- if ($piece_positions['G8'] == '' && $piece_positions['F8'] == '') {
- return TRUE;
- }
- }
- }
- } else if ($colour == 'white') {
- if(isset($piece_positions['H1']) && $piece_positions['H1'] == "WRR") {
- if ($the_game['WRR_moved'] == '0' && $the_game['WK_moved'] == '0'){
- if ($piece_positions['G1'] == '' && $piece_positions['F1'] == '') {
- return TRUE;
- }
- }
- }
- }
- return false;
- }
- function castleQueenSide($source, $destination, $piece_positions) {
- if ($source == "E8") {
- $colour = 'black';
- } else if ($source == "E1") {
- $colour = 'white';
- }
- $db = dbConnection();
- // $sql = "SELECT * FROM games WHERE id='$_SESSION['game_id']';";
- // Execute the query and store the result in a result object variable
- $result = mysqli_query($db, $sql);
- $the_game = $result->fetch_assoc();
- if ($colour == 'black') {
- if(isset($piece_positions['A8']) && $piece_positions['A8'] == "BLR") {
- if ($the_game['BLR_moved'] == '0' && $the_game['BK_moved'] == '0'){
- if ($piece_positions['B8'] == '' && $piece_positions['C8'] == '' && $piece_positions['D8'] == '') {
- return TRUE;
- }
- }
- }
- } else if ($colour == 'white') {
- if(isset($piece_positions['A1']) && $piece_positions['A1'] == "WLR") {
- if ($the_game['WLR_moved'] == '0' && $the_game['WK_moved'] == '0') {
- if ($piece_positions['B1'] == '' && $piece_positions['C1'] == '' && $piece_positions['D1'] == '') {
- return TRUE;
- }
- }
- }
- }
- return false;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement