}//end of IsMoveLegal method public void EnterMove(int[] move) { Move newMove = new Move(move); Console.Write($" moves {GameInterface.map_board_location(move[0],move[1])}{GameInterface.map_board_location(move[2], move[3])} ({GameInterface.map_translate_location(move[0], move[1])}{GameInterface.map_translate_location(move[2], move[3])})"); if(OnBoard(newMove.GetFromRow(), newMove.GetFromCol()) && OnBoard(newMove.GetFromRow(), newMove.GetFromCol())) { PIECES piece = board[newMove.GetFromRow(), newMove.GetFromCol()]; currentHash = currentHash ^ zBoard[(5 * newMove.GetFromRow()) + newMove.GetFromCol(), (int)piece - 1]; Removal removal = new Removal(newMove.GetToRow(), newMove.GetToCol(), board[newMove.GetToRow(), newMove.GetToCol()]); removals.Push(removal); if(board[newMove.GetToRow(), newMove.GetToCol()] != PIECES.NONE) { currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)board[newMove.GetToRow(), newMove.GetToCol()] - 1]; } if(piece == PIECES.P1_BISHOP) { board[newMove.GetToRow(), newMove.GetToCol()] = PIECES.P1_KNIGHT; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)PIECES.P1_KNIGHT - 1]; } else if(piece == PIECES.P2_BISHOP) { board[newMove.GetToRow(), newMove.GetToCol()] = PIECES.P2_KNIGHT; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)PIECES.P2_KNIGHT - 1]; } else if(piece == PIECES.P1_ROOK) { board[newMove.GetToRow(), newMove.GetToCol()] = PIECES.P1_BISHOP; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)PIECES.P1_BISHOP - 1]; } else if(piece == PIECES.P2_ROOK) { board[newMove.GetToRow(), newMove.GetToCol()] = PIECES.P2_BISHOP; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)PIECES.P2_BISHOP - 1]; } else if(piece == PIECES.P1_KNIGHT) { board[newMove.GetToRow(), newMove.GetToCol()] = PIECES.P1_ROOK; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)PIECES.P1_ROOK - 1]; } else if(piece == PIECES.P2_KNIGHT) { board[newMove.GetToRow(), newMove.GetToCol()] = PIECES.P2_ROOK; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)PIECES.P2_ROOK - 1]; } else { board[newMove.GetToRow(), newMove.GetToCol()] = piece; currentHash = currentHash ^ zBoard[(5 * newMove.GetToRow()) + newMove.GetToCol(), (int)piece - 1]; } board[newMove.GetFromRow(), newMove.GetFromCol()] = PIECES.NONE; } }//end of EnterMove method
}//end of GetGame method public static GameInterface GetInterface() { if(game_interface == null) { game_interface = new GameInterface(); } return game_interface; }//end of GetInterface method