public void PawnBackwardsFail() { //Setup var board = new Board { Top = Side.White, Bottom = Side.Black }; var grid = BoardHelper.GetEmptyBoard(); var row1 = BoardHelper.GetEmptyRow(); var pawn = new Peice { Type = PeiceType.Pawn, Side = Side.White, X = 0, Y = 0, HasMoved = true }; row1[1] = pawn; grid[0] = row1; board.SetGrid(grid); Assert.False(Pawn.CanMove(board, pawn, 0, -1).Success); }
public void PawnPass() { //Setup var board = new Board() { Top = Side.White, Bottom = Side.Black }; var grid = BoardHelper.GetEmptyBoard(); var row1 = BoardHelper.GetEmptyRow(); var pawn = new Peice { Type = PeiceType.Pawn, Side = Side.White, X = 0, Y = 0 }; row1[0] = pawn; grid[0] = row1; board.SetGrid(grid); Assert.True(Pawn.CanMove(board, pawn, 0, 1).Success); Assert.True(Pawn.CanMove(board, pawn, 0, 2).Success); }
public void CastleMoveFail() { //Setup var board = new Board { Top = Side.White, Bottom = Side.Black }; var grid = BoardHelper.GetEmptyBoard(); var row1 = BoardHelper.GetEmptyRow(); var rook = new Peice { Type = PeiceType.Castle, X = 0, Y = 0 }; row1[0] = rook; grid[0] = row1; board.SetGrid(grid); Assert.False(Castle.CanMove(board, rook, 0, 0)); Assert.False(Castle.CanMove(board, rook, -1, 0)); Assert.False(Castle.CanMove(board, rook, 8, 0)); Assert.False(Castle.CanMove(board, rook, 7, 1)); Assert.False(Castle.CanMove(board, rook, 0, -1)); Assert.False(Castle.CanMove(board, rook, 0, 8)); }
public void PawnEnPassantPass() { //Setup var board = new Board { Top = Side.White, Bottom = Side.Black }; var grid = BoardHelper.GetEmptyBoard(); var row1 = BoardHelper.GetEmptyRow(); var row2 = BoardHelper.GetEmptyRow(); var pawn = new Peice { Type = PeiceType.Pawn, Side = Side.White, X = 0, Y = 4 }; var enPassantPrev = new Peice { Type = PeiceType.Pawn, Side = Side.Black, X = 1, Y = 2, HasMoved = true }; var enPassant = new Peice { Type = PeiceType.Pawn, Side = Side.Black, X = 1, Y = 4, HasMoved = true }; row1[4] = pawn; row2[4] = enPassant; grid[0] = row1; grid[1] = row2; board.SetGrid(grid); board.RecordMove(enPassantPrev, enPassant); Assert.True(Pawn.CanMove(board, pawn, 1, 1).Success); }
public void CastleMoveCastlePass() { //Setup var board = new Board() { Top = Side.White, Bottom = Side.Black }; var grid = BoardHelper.GetEmptyBoard(); var firstRow = BoardHelper.GetEmptyRow(); var kingRow = BoardHelper.GetEmptyRow(); var lastRow = BoardHelper.GetEmptyRow(); var leftRook = new Peice { Type = PeiceType.Castle, X = 0, Y = 0 }; var rightRook = new Peice { Type = PeiceType.Castle, X = 7, Y = 0 }; var king = new Peice { Type = PeiceType.King, X = 5, Y = 0 }; firstRow[0] = leftRook; kingRow[0] = king; lastRow[0] = rightRook; grid[0] = firstRow; grid[5] = kingRow; grid[7] = lastRow; board.SetGrid(grid); Assert.True(Castle.CanMove(board, leftRook, 3, 0)); Assert.True(Castle.CanMove(board, rightRook, -2, 0)); }
public void CastleMoveBlockedFail() { //Setup var grid = BoardHelper.GetEmptyBoard(); var row1 = BoardHelper.GetEmptyRow(); var row2 = BoardHelper.GetEmptyRow(); var rook = new Peice { Type = PeiceType.Castle, X = 0, Y = 0 }; var verticalBlock = new Peice { Type = PeiceType.Pawn, X = 0, Y = 1 }; var horizontalBlock = new Peice { Type = PeiceType.Pawn, X = 1, Y = 0 }; row1[0] = rook; row1[1] = verticalBlock; row2[0] = horizontalBlock; grid[0] = row1; grid[1] = row2; var board = new Board() { Top = Side.White, Bottom = Side.Black }; board.SetGrid(grid); Assert.False(Castle.CanMove(board, rook, 0, 7)); Assert.False(Castle.CanMove(board, rook, 7, 0)); }
public void PawnEnPassantImmediateFail() { //Setup var board = new Board { Top = Side.White, Bottom = Side.Black }; IPeice[][] grid = BoardHelper.GetEmptyBoard(); var row1 = BoardHelper.GetEmptyRow(); var row2 = BoardHelper.GetEmptyRow(); var pawn = new Peice { Type = PeiceType.Pawn, Side = Side.White, X = 0, Y = 4 }; var pawn2 = new Peice { Type = PeiceType.Pawn, Side = Side.Black, X = 1, Y = 4, HasMoved = true }; row1[4] = pawn; row2[4] = pawn2; grid[0] = row1; grid[1] = row2; board.SetGrid(grid); var execute = Pawn.CanMove(board, pawn, 1, 1); Assert.False(execute.Success); }