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"); }
public BoardState NewGame() { CurrentGame = new GameLogic(); return CurrentGame.GetBoardState(); }
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"); }