public override List <Vector2> LegalMoves(Board chessBoard) { Rook tempRook = new Rook(GetTeam(), GetPiecePositionX(), GetPiecePositionY()); Bishop tempBishop = new Bishop(GetTeam(), GetPiecePositionX(), GetPiecePositionY()); List <Vector2> positions = new List <Vector2>(); List <Vector2> rookPositions = tempRook.LegalMoves(chessBoard); List <Vector2> bishopPositions = tempBishop.LegalMoves(chessBoard); positions.AddRange(rookPositions); positions.AddRange(bishopPositions); return(positions); }
// Use this for initialization void Start() { Board BTestBoard = new Board(); Board WTestBoard = new Board(); //Black test Pieces King BKing = new King(ChessGlobals.Teams.BLACK_TEAM, 0, 0); Queen BQueen = new Queen(ChessGlobals.Teams.BLACK_TEAM, 6, 6); Rook BRook = new Rook(ChessGlobals.Teams.BLACK_TEAM, 5, 3); Bishop BBishop = new Bishop(ChessGlobals.Teams.BLACK_TEAM, 2, 2); Knight BKnight = new Knight(ChessGlobals.Teams.BLACK_TEAM, 6, 1); Pawn BPawn1 = new Pawn(ChessGlobals.Teams.BLACK_TEAM, 2, 6); Pawn BPawn2 = new Pawn(ChessGlobals.Teams.BLACK_TEAM, 7, 1); Pawn WTestPawn1 = new Pawn(ChessGlobals.Teams.WHITE_TEAM, 0, 1); Pawn WTestPawn2 = new Pawn(ChessGlobals.Teams.WHITE_TEAM, 3, 1); Pawn WTestPawn3 = new Pawn(ChessGlobals.Teams.WHITE_TEAM, 4, 2); Pawn WTestPawn4 = new Pawn(ChessGlobals.Teams.WHITE_TEAM, 3, 5); BTestBoard.Mark(BKing.GetPiecePosition(), BKing); BTestBoard.Mark(BQueen.GetPiecePosition(), BQueen); BTestBoard.Mark(BRook.GetPiecePosition(), BRook); BTestBoard.Mark(BBishop.GetPiecePosition(), BBishop); BTestBoard.Mark(BKnight.GetPiecePosition(), BKnight); BTestBoard.Mark(BPawn1.GetPiecePosition(), BPawn1); BTestBoard.Mark(BPawn2.GetPiecePosition(), BPawn2); BTestBoard.Mark(WTestPawn1.GetPiecePosition(), WTestPawn1); BTestBoard.Mark(WTestPawn2.GetPiecePosition(), WTestPawn2); BTestBoard.Mark(WTestPawn3.GetPiecePosition(), WTestPawn3); BTestBoard.Mark(WTestPawn4.GetPiecePosition(), WTestPawn4); List <Vector2> BKingMoves = BKing.LegalMoves(BTestBoard); List <Vector2> BQeenMoves = BQueen.LegalMoves(BTestBoard); List <Vector2> BKnightMoves = BKnight.LegalMoves(BTestBoard); List <Vector2> BBishopsMoves = BBishop.LegalMoves(BTestBoard); List <Vector2> BRookMoves = BRook.LegalMoves(BTestBoard); List <Vector2> BPawn1Moves = BPawn1.LegalMoves(BTestBoard); List <Vector2> BPawn2Moves = BPawn2.LegalMoves(BTestBoard); print("King Moves"); foreach (Vector2 move in BKingMoves) { print(move.ToString()); } print("Queen Moves"); foreach (Vector2 move in BQeenMoves) { print(move.ToString()); } print("Knight Moves"); foreach (Vector2 move in BKnightMoves) { print(move.ToString()); } print("Bishop Moves"); foreach (Vector2 move in BBishopsMoves) { print(move.ToString()); } print("Rook Moves"); foreach (Vector2 move in BRookMoves) { print(move.ToString()); } print("Pawn 1 Moves"); foreach (Vector2 move in BPawn1Moves) { print(move.ToString()); } print("Pawn 2 Moves"); foreach (Vector2 move in BPawn2Moves) { print(move.ToString()); } King WKing = new King(ChessGlobals.Teams.WHITE_TEAM, 0, 0); Queen WQueen = new Queen(ChessGlobals.Teams.WHITE_TEAM, 6, 6); Rook WRook = new Rook(ChessGlobals.Teams.WHITE_TEAM, 5, 3); Bishop WBishop = new Bishop(ChessGlobals.Teams.WHITE_TEAM, 2, 2); Knight WKnight = new Knight(ChessGlobals.Teams.WHITE_TEAM, 6, 1); Pawn WPawn1 = new Pawn(ChessGlobals.Teams.WHITE_TEAM, 5, 1); Pawn WPawn2 = new Pawn(ChessGlobals.Teams.WHITE_TEAM, 2, 4); Pawn BTestPawn1 = new Pawn(ChessGlobals.Teams.BLACK_TEAM, 0, 1); Pawn BTestPawn2 = new Pawn(ChessGlobals.Teams.BLACK_TEAM, 3, 1); Pawn BTestPawn3 = new Pawn(ChessGlobals.Teams.BLACK_TEAM, 4, 2); Pawn BTestPawn4 = new Pawn(ChessGlobals.Teams.BLACK_TEAM, 3, 5); WTestBoard.Mark(WKing.GetPiecePosition(), WKing); WTestBoard.Mark(WQueen.GetPiecePosition(), WQueen); WTestBoard.Mark(WRook.GetPiecePosition(), WRook); WTestBoard.Mark(WBishop.GetPiecePosition(), WBishop); WTestBoard.Mark(WKnight.GetPiecePosition(), WKnight); WTestBoard.Mark(WPawn1.GetPiecePosition(), WPawn1); WTestBoard.Mark(WPawn2.GetPiecePosition(), WPawn2); WTestBoard.Mark(BTestPawn1.GetPiecePosition(), BTestPawn1); WTestBoard.Mark(BTestPawn2.GetPiecePosition(), BTestPawn2); WTestBoard.Mark(BTestPawn3.GetPiecePosition(), BTestPawn3); WTestBoard.Mark(BTestPawn4.GetPiecePosition(), BTestPawn4); List <Vector2> WKingMoves = WKing.LegalMoves(WTestBoard); List <Vector2> WQeenMoves = WQueen.LegalMoves(WTestBoard); List <Vector2> WKnightMoves = WKnight.LegalMoves(WTestBoard); List <Vector2> WBishopsMoves = WBishop.LegalMoves(WTestBoard); List <Vector2> WRookMoves = WRook.LegalMoves(WTestBoard); List <Vector2> WPawn1Moves = WPawn1.LegalMoves(WTestBoard); List <Vector2> WPawn2Moves = WPawn2.LegalMoves(WTestBoard); print("White piece tests:"); print("King Moves"); foreach (Vector2 move in WKingMoves) { print(move.ToString()); } print("Queen Moves"); foreach (Vector2 move in WQeenMoves) { print(move.ToString()); } print("Knight Moves"); foreach (Vector2 move in WKnightMoves) { print(move.ToString()); } print("Bishop Moves"); foreach (Vector2 move in WBishopsMoves) { print(move.ToString()); } print("Rook Moves"); foreach (Vector2 move in WRookMoves) { print(move.ToString()); } print("Pawn 1 Moves"); foreach (Vector2 move in WPawn1Moves) { print(move.ToString()); } print("Pawn 2 Moves"); foreach (Vector2 move in WPawn2Moves) { print(move.ToString()); } }