public void Equals_TwoBoardsWithExactlyTheSameConfiguration_ReturnsTrue() { Board board1 = new Board(); Board board2 = new Board(); board1.Setup(); board2.Setup(); Assert.AreEqual(board1, board2); board1.Move(board1.GetSquare(1, 2), board1.GetSquare(1, 4)); board2.Move(board2.GetSquare(1, 2), board2.GetSquare(1, 4)); Assert.AreEqual(board1, board2); }
public void Equals_TwoBoardsWithDifferentConfigurations_ReturnsFalse() { Board board1 = new Board(); Board board2 = new Board(); board1.Setup(); Assert.AreNotEqual(board1, board2); board1 = new Board(); board2 = new Board(); board1.SetSquare(1, 2, new NullPiece(board1)); board2.SetSquare(1, 2, new Pawn(board2, PieceColor.White)); Assert.AreNotEqual(board1, board2); }
protected void InitializeBoard() { Board = new Board(); }
private Position SimulateMove(Square origin, Square destination) { var simulationBoard = new Board(); foreach (var square in _allSquares) simulationBoard.SetSquare(square.File, square.Rank, square.Occupier.Clone(simulationBoard)); simulationBoard.Move(simulationBoard.GetSquare(origin.File, origin.Rank), simulationBoard.GetSquare(destination.File, destination.Rank)); return simulationBoard.GetPosition(); }
public Game(Board board) { board.Attach(this); State = GameState.SetupMode; PlayerToMove = PieceColor.Empty; }
private bool Equals(Board other) { if (ReferenceEquals(this, other)) return true; var boolToReturn = true; foreach (var square in _squareMatrix) { if (!square.Equals(other.GetSquare(square.File, square.Rank))) { boolToReturn = false; break; } } return boolToReturn; }