Beispiel #1
0
        public static void TestBishops()
        {
            Debug.WriteLine("Test: TestBishops, Begin");

            var board = new Board();
            //Set them up in standard positions
            Bishop RW0 = new Bishop(new Vector2(2, 7), Color.White),
                   RW1 = new Bishop(new Vector2(5, 7), Color.White),
                   RB0 = new Bishop(new Vector2(2, 0), Color.Black),
                   RB1 = new Bishop(new Vector2(5, 0), Color.Black);

            board.Pieces.Add(RW0);
            board.Pieces.Add(RW1);
            board.Pieces.Add(RB0);
            board.Pieces.Add(RB1);

            //Test standard move
            Debug.Assert(RW0.IsMoveValid(board, RW0.Position.AddVector(-1, -1)), "slide up and left");
            Debug.Assert(RW0.IsMoveValid(board, RW0.Position.AddVector(-2, -2)), "slide up and left");
            Debug.Assert(!RW0.IsMoveValid(board, RW0.Position.AddVector(-3, -3)), "Overshoot edge");
            Debug.Assert(RW0.IsMoveValid(board, RW0.Position.AddVector(3, -3)), "Go right instead");
            Debug.Assert(RW0.IsMoveValid(board, RW0.Position.AddVector(4, -4)), "Go right instead");
            Debug.Assert(RW0.IsMoveValid(board, RW0.Position.AddVector(5, -5)), "Go right instead");
            Debug.Assert(!RW0.IsMoveValid(board, RW0.Position.AddVector(6, -6)), "Too far right");

            Debug.Assert(!RW0.IsMoveValid(board, RW0.Position.AddVector(-1, -2)), "Not 1:1");
            Debug.Assert(!RW0.IsMoveValid(board, RW0.Position.AddVector(-2, -1)), "Not 1:1");

            var PB1 = new Pawn(RW0.Position.AddVector(-2, -2), Color.Black); //Create new enemy pawn diagonal to RW0

            board.Pieces.Add(PB1);
            //Attack it
            Debug.Assert(RW0.IsMoveValid(board, RW0.Position.AddVector(-2, -2)), "Diagonal attack failed");  //Direct attack should pass
            Debug.Assert(!RW0.IsMoveValid(board, RW0.Position.AddVector(-3, -3)), "Diagonal attack failed"); //Enemy in path should fail
            Debug.WriteLine("Test: TestBishops, End");
        }