示例#1
0
        public void Assert_that_a_player_must_jump_when_possible()
        {
            // If a player attempts to simply move when a jump is possible, then the move is not valid
            var p1Checker = new Checker(Player.PlayerOne);
            var p2Checker = new Checker(Player.PlayerTwo);

            var move = new Move
            {
                Player = Player.PlayerOne,
                From = new Square(5, 2),
                To = new Square(4, 3),
            };

            var gameLogic = new GameLogic { Board = GetEmptyBoard() };
            gameLogic.Board[5][2] = p1Checker;
            gameLogic.Board[3][4] = p2Checker;

            var isSuccessful = gameLogic.SendMove(move);
            Assert.That(isSuccessful, Is.True, "P1 is allowed to commit suicide");

            var boardState = gameLogic.GetBoardState();
            Assert.That(boardState.IsPlayerOnesTurn, Is.False, "Should be P2's turn after P1's suicide");
        }
示例#2
0
 public BoardState NewGame()
 {
     CurrentGame = new GameLogic();
     return CurrentGame.GetBoardState();
 }
示例#3
0
        public void Assert_that_when_a_double_jump_is_possible_that_the_players_turn_does_not_end()
        {
            // If a player attempts to simply move when another checker has a jump, then the move is not valid
            var p1Checker = new Checker(Player.PlayerOne);
            var p2Jumpee1 = new Checker(Player.PlayerTwo);
            var p2Jumpee2 = new Checker(Player.PlayerTwo);
            var p2LastMove = new Checker(Player.PlayerTwo);

            var move = new Move
            {
                Player = Player.PlayerOne,
                From = new Square(5, 2),
                To = new Square(3, 4),
            };

            var gameLogic = new GameLogic { Board = GetEmptyBoard() };
            gameLogic.Board[5][2] = p1Checker;
            gameLogic.Board[4][3] = p2Jumpee1;
            gameLogic.Board[4][5] = p2Jumpee2;
            gameLogic.Board[0][1] = p2LastMove;

            var isSuccessful = gameLogic.SendMove(move);
            Assert.That(isSuccessful, Is.True, "P1 has a double jump opportunity");

            var boardState = gameLogic.GetBoardState();
            Assert.That(boardState.IsPlayerOnesTurn, Is.True, "It should still be P1's turn");

            //Make double jump
            move = new Move
            {
                Player = Player.PlayerOne,
                From = new Square(3, 4),
                To = new Square(5, 6),
            };
            isSuccessful = gameLogic.SendMove(move);
            Assert.That(isSuccessful, Is.True, "P1 should have been alowed to make a double jump");

            boardState = gameLogic.GetBoardState();
            Assert.That(boardState.IsPlayerOnesTurn, Is.False, "It should be P2's turn after the double jump");
        }