Ejemplo n.º 1
0
		}//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
Ejemplo n.º 2
0
		}//end of GetGame method

		public static GameInterface GetInterface() {
			if(game_interface == null) {
				game_interface = new GameInterface();
			}
			return game_interface;
		}//end of GetInterface method