Пример #1
0
    def test_valid_moves_do_not_include_backwards_moves(self):
        game = Game()
        game.reset()

        game.move("26-23")
        game.move("7-11")

        assert "23-26" not in game.valid_moves("white")
        assert "11-7" not in game.valid_moves("black")
Пример #2
0
    def test_that_king_takes_are_included_in_valid_moves(self):
        game = Game()

        game._board._board[4, 3] = King("white", None)
        game._board._board[3, 4] = King("black", None)
        game._board._board[5, 4] = King("black", None)
        game._board._board[2, 3] = King("white", None)

        assert "18-11" in game.valid_moves("white")
        assert "15-22" in game.valid_moves("black")
        assert "18-27" in game.valid_moves("white")
        assert "15-6" in game.valid_moves("black")
Пример #3
0
    def test_takes_included_in_valid_moves(self):
        game = Game()

        game._board._board[4, 3] = Piece("white", None)
        game._board._board[3, 4] = Piece("black", None)
        game._board._board[5, 4] = Piece("black", None)
        game._board._board[2, 3] = Piece("white", None)

        assert "18-11" in game.valid_moves("white")
        assert "15-22" in game.valid_moves("black")
        assert "18-27" not in game.valid_moves(
            "white")  # because piece can't move backwards
        assert "15-6" not in game.valid_moves("black")
Пример #4
0
    def test_valid_moves_include_backwards_moves_for_kings(self):
        game = Game()
        game.reset()

        game._board._board[4, 3] = King("white", None)
        game._board._board[4, 5] = King("black", None)

        white_moves = game.valid_moves("white")
        for move in ["18-14", "18-15", "18-22", "18-23"]:
            assert move in white_moves

        black_moves = game.valid_moves("black")
        for move in ["19-15", "19-16", "19-23", "19-24"]:
            assert move in black_moves
Пример #5
0
    def test_valid_moves_can_accept_other_piece(self):
        game = Game()

        # Remove all black pieces, but keep game turn as white
        game._board._board[:, :2] = EmptyPiece()

        assert game.valid_moves("black") == []
Пример #6
0
    def test_valid_moves_considers_player_turn(self):
        game = Game()
        game.turn = "black"

        # Remove existing black pieces
        game._board._board[:, :2] = EmptyPiece()
        game._board._board[0, 3] = Piece("black", None)

        assert game.valid_moves() == ["2-6", "2-7"]
Пример #7
0
    def test_other_play_wins_if_no_valid_moves(self):
        game = Game()
        game.reset()
        game.valid_moves = mock.Mock(return_value=[])

        assert game.game_over()
        assert game.result == "black"

        game.turn = "black"
        assert game.game_over()
        assert game.result == "white"
Пример #8
0
 def test_valid_moves_returns_empty_list_if_no_moves(self):
     game = Game()
     # game._board is initialised to an empty array
     # no pieces == no moves
     assert game.valid_moves() == []