public void Setup() { _whiteQueen = new Queen(PlayerColor.White); _blackQueen = new Queen(PlayerColor.Black); _whiteStart = new BoardCoordinate(1, 1); _board.AddPiece(_whiteQueen, _whiteStart); }
public void Returns_No_When_Diagonal_Move_Is_Blocked() { _blackStart = new BoardCoordinate(4, 4); _board.AddPiece(_blackQueen, _blackStart); var move = new MoveAttempt(_board, _whiteStart, new BoardCoordinate(8, 8)); var moveResult = _referee.TryMove(move); Assert.AreEqual(MoveResult.Failed(), moveResult); }
public void Accepts_Rook_As_Argument_For_Piece() { var coordinate = new BoardCoordinate(1, 2); Target.AddPiece(new Rook(), coordinate); }
public void Throws_Exception_When_BoardCoordinate_Has_Larger_Value_Y_Than_Board_Size() { var coordinate = new BoardCoordinate(1, 9); ExtendedAssert.Throws<ArgumentException>(() => this.target.AddPiece(new Pawn(), coordinate)); }
public void Throws_Exception_When_BoardCoordinate_Has_Zero_X_Value() { var coordinate = new BoardCoordinate(0, 3); ExtendedAssert.Throws<ArgumentException>(() => this.target.AddPiece(new Pawn(), coordinate)); }
public void Returns_1_1_When_Passed_1_2() { var legalMoves = _piece.GetLegalMovesFromCoordinate(new BoardCoordinate(1, 2), _board.BoardSize); var target = new BoardCoordinate(1, 1); Assert.IsTrue(legalMoves.Contains(target)); }
public void Returns_No_When_Diagonal_Move_Is_Blocked_From_Non_1_1_Start() { var newWhiteStart = new BoardCoordinate(2, 1); _board.RemovePiece(_whiteStart); _board.AddPiece(_whiteQueen, newWhiteStart); _blackStart = new BoardCoordinate(3, 2); _board.AddPiece(_blackQueen, _blackStart); var move = new MoveAttempt(_board, newWhiteStart, new BoardCoordinate(4, 3)); var moveResult = _referee.TryMove(move); Assert.AreEqual(MoveResult.Failed(), moveResult); }
public void Returns_False_For_Y_Less_Than_Zero() { var coordinate = new BoardCoordinate(-12, 2); Assert.IsFalse(coordinate.IsCoordinateValidForBoardSize(5)); }
public void throws_exception_when_boardcoordinate_has_larger_y_value_than_board_size() { var coordinate = new BoardCoordinate(1, 9); Assert.Throws<ArgumentException>(() => Target.AddPiece(new Pawn(), coordinate)); }
public void Returns_Yes_Moving_King_Out_Of_Check() { var king = new King(PlayerColor.Black); var kingStart = new BoardCoordinate(1, 8); _board.AddPiece(king, kingStart); var move = new MoveAttempt(_board, kingStart, new BoardCoordinate(2, 8)); var moveResult = _referee.TryMove(move); Assert.AreEqual(MoveResult.Succeeded(), moveResult); }
public void Returns_Capture_When_Capturing_Check() { var king = new King(PlayerColor.Black); var kingStart = new BoardCoordinate(1, 8); _board.AddPiece(king, kingStart); _blackStart = new BoardCoordinate(8, 1); _board.AddPiece(_blackQueen, _blackStart); var move = new MoveAttempt(_board, _blackStart, _whiteStart); var moveResult = _referee.TryMove(move); Assert.AreEqual(MoveResult.Captured(_whiteQueen), moveResult); }
public void Returns_Yes_When_Moving_To_Unoccupied_Square() { _blackStart = new BoardCoordinate(1, 4); _board.AddPiece(_blackQueen, _blackStart); var destination = new BoardCoordinate(8, 1); var move = new MoveAttempt(_board, _whiteStart, destination); var moveResult = _referee.TryMove(move); var endPiece = _board.GetPiece(destination); Assert.IsTrue(moveResult == MoveResult.Succeeded() && endPiece == _whiteQueen); }
public void Returns_Capture_When_Move_To_Opponent_Occupied_Square() { _blackStart = new BoardCoordinate(1, 4); _board.AddPiece(_blackQueen, _blackStart); var move = new MoveAttempt(_board, _whiteStart, _blackStart); var moveResult = _referee.TryMove(move); var endPiece = _board.GetPiece(_blackStart); Assert.IsTrue(moveResult == MoveResult.Captured(_blackQueen) && endPiece == _whiteQueen); }
public void Returns_Yes_When_Knight_Move_Is_Blocked() { _blackStart = new BoardCoordinate(2, 2); _board.AddPiece(_blackQueen, _blackStart); var knight = new Knight(PlayerColor.White); var knightStart = new BoardCoordinate(2, 1); _board.AddPiece(knight, knightStart); var destination = new BoardCoordinate(3, 3); var move = new MoveAttempt(_board, knightStart, destination); var moveResult = _referee.TryMove(move); Assert.AreEqual(MoveResult.Succeeded(), moveResult); }
public void Does_Not_Return_1_3_When_Passed_1_1() { var legalMoves = _piece.GetLegalMovesFromCoordinate(_startingLocation, _board.BoardSize); var target = new BoardCoordinate(1, 3); Assert.IsFalse(legalMoves.Contains(target)); }
public void Returns_2_2_When_Passed_1_1() { var legalMoves = _piece.GetLegalMovesFromCoordinate(_startingLocation, _board.BoardSize); var target = new BoardCoordinate(2, 2); Assert.IsTrue(legalMoves.Contains(target)); }
public void Throws_Exception_When_BoardCoordinate_Has_Larger_X_Value_Than_Board_Size() { var coordinate = new BoardCoordinate(9, 1); ExtendedAssert.Throws<ArgumentException>(() => Target.AddPiece(Piece, coordinate)); }
public void Returns_No_When_Not_Solving_Check() { var king = new King(PlayerColor.Black); var kingStart = new BoardCoordinate(1, 8); _board.AddPiece(king, kingStart); _blackStart = new BoardCoordinate(2, 4); _board.AddPiece(_blackQueen, _blackStart); var move = new MoveAttempt(_board, _blackStart, new BoardCoordinate(2, 8)); var moveResult = _referee.TryMove(move); Assert.AreEqual(MoveResult.Failed(), moveResult); }
public void Throws_Exception_When_BoardCoordinate_Has_Zero_Y_Value() { var coordinate = new BoardCoordinate(1, 0); ExtendedAssert.Throws<ArgumentException>(() => Target.AddPiece(Piece, coordinate)); }
public void returns_false_for_y_less_than_zero() { var coordinate = new BoardCoordinate(1, -1); Assert.IsFalse(coordinate.IsCoordinateValidForBoardSize(8)); }
public void accepts_rook_as_argument_for_piece() { var coordinate = new BoardCoordinate(1, 2); Target.AddPiece(new Rook(), coordinate); }
private IEnumerator SearchCombo() { IsSearching = true; maxComboLenght = 0; List <BoardCoordinate> deleteCoordinate = new List <BoardCoordinate>(); for (int i = 0; i < width; ++i) { for (int j = 0; j < height; ++j) { if (indexMap[i][j] == TileObjectPull.comboBonusIndex) { if (i <= width - comboLenght) { //Check horizontal combo. Go to the right. int iterator = 1; for (int k = i + 1; iterator < comboLenght && k < width; ++k) { if (indexMap[k][j] == indexMap[i][j]) { iterator++; } else { break; } } if (iterator >= comboLenght) { if (iterator >= maxComboLenght) { maxComboLenght = iterator; } //we got horizontal combo, so add full row for (int l = 0; l < width; ++l) { var tmp = new BoardCoordinate(j, l); if (!deleteCoordinate.Contains(tmp)) { deleteCoordinate.Add(tmp); } } } } if (j <= height - comboLenght) { //Check vertical combo. Go to up int iterator = 1; for (int k = j + 1; iterator < comboLenght && k < height; ++k) { if (indexMap[i][k] == indexMap[i][j]) { iterator++; } else { break; } } if (iterator >= comboLenght) { //we got vertical combo so add full column if (iterator >= maxComboLenght) { maxComboLenght = iterator; } for (int l = 0; l < height; ++l) { var tmp = new BoardCoordinate(l, i); if (!deleteCoordinate.Contains(tmp)) { deleteCoordinate.Add(tmp); } } } } continue; } else if (indexMap[i][j] >= TileObjectPull.instance.GetCountOfTiles()) { var array = BonusTileObject.GetDestroingCoordinatesByTileIndexAndPosition(indexMap[i][j] , new BoardCoordinate(j, i)); for (int l = 0; l < array.Length; ++l) { if (!deleteCoordinate.Contains(array[l])) { deleteCoordinate.Add(array[l]); } } continue; } if (i <= width - comboLenght) { //Check horizontal combo. Go to the right. int iterator = 1; for (int k = i + 1; k < width; ++k) { if (indexMap[k][j] == indexMap[i][j]) { iterator++; } else { break; } } if (iterator >= comboLenght) { if (iterator >= maxComboLenght) { maxComboLenght = iterator; } for (int k = 0; k < iterator; ++k) { var tmp = new BoardCoordinate(j, i + k); if (!deleteCoordinate.Contains(tmp)) { deleteCoordinate.Add(tmp); } } } } if (j <= height - comboLenght) { //Check vertical combo. Go to up int iterator = 1; for (int k = j + 1; k < height; ++k) { if (indexMap[i][k] == indexMap[i][j]) { iterator++; } else { break; } } if (iterator >= comboLenght) { if (iterator >= maxComboLenght) { maxComboLenght = iterator; } for (int k = 0; k < iterator; ++k) { var tmp = new BoardCoordinate(j + k, i); if (!deleteCoordinate.Contains(tmp)) { deleteCoordinate.Add(tmp); } } } } } } if (startingMap == null) { startingMap = new List <List <int> >(); for (int i = 0; i < width; ++i) { startingMap.Add(new List <int>(indexMap[i])); } } coordinateForDelete = deleteCoordinate; yield return(Ninja.JumpToUnity); yield return(this.StartCoroutineAsync(DeleteCoroutine(new List <BoardCoordinate>(deleteCoordinate)))); IsSearching = false; }
public void throws_exception_when_boardcoordinate_has_zero_x_value() { var coordinate = new BoardCoordinate(0, 1); Assert.Throws<ArgumentException>(() => Target.AddPiece(new Pawn(), coordinate)); }
public void Setup() { _board = new Board(8); _piece = new King(PlayerColor.White); _startingLocation = new BoardCoordinate(1, 1); }
public void BeforeEachTest() { Target = new Board(); Coordinate = BoardCoordinate.For(1, 1); }
public Moves(IEnumerable <BoardCoordinate> validMoves, BoardCoordinate startingCoordinate, int boardSize) { _boardSize = boardSize; _startingCoordinate = startingCoordinate; _validMoves = validMoves; }