Пример #1
0
def test_load_game():
    min_max = MinMax(1, 1)

    piece_1 = CheckersPiece(position=18, player=1, king=True)
    piece_2 = CheckersPiece(position=22, player=2, king=True)

    min_max.load_game([piece_1, piece_2])

    moves = min_max._game.get_possible_moves()[0]
    min_max.move(*moves)

    assert min_max._game.is_over()
Пример #2
0
def test_multi_move_recreation(valid_multi_move_pieces):
    min_max = MinMax(1, 1)

    piece_1 = CheckersPiece(position=29, player=1, king=True)
    piece_2 = CheckersPiece(position=25, player=2, king=True)
    piece_3 = CheckersPiece(position=18, player=2, king=True)
    piece_4 = CheckersPiece(position=11, player=2, king=True)

    min_max.load_game([piece_1, piece_2, piece_3, piece_4])

    move: List[Tuple[int, int]] = min_max.get_move_by_pieces(
        valid_multi_move_pieces)
    assert move == [[29, 22], [22, 15], [15, 8]]
Пример #3
0
def test_new_king():
    min_max = MinMax(2, 1)

    piece_1 = CheckersPiece(position=6, player=2, king=False)
    piece_2 = CheckersPiece(position=8, player=1, king=False)

    min_max.load_game([piece_1, piece_2])

    min_max.move(8, 11)

    old_game: Game = deepcopy(min_max._game)
    min_max.move(6, 1)

    king_pieces = min_max.get_new_kings(old_game, min_max._game,
                                        old_game.whose_turn(), (6, 1))
    assert king_pieces == [1]
Пример #4
0
def test_piece_removal(valid_multi_move_pieces):
    min_max = MinMax(1, 1)

    piece_1 = CheckersPiece(position=29, player=1, king=True)
    piece_2 = CheckersPiece(position=25, player=2, king=True)
    piece_3 = CheckersPiece(position=18, player=2, king=True)
    piece_4 = CheckersPiece(position=11, player=2, king=True)

    min_max.load_game([piece_1, piece_2, piece_3, piece_4])

    old_game: Game = deepcopy(min_max._game)
    move_list = min_max.get_move_by_pieces(valid_multi_move_pieces)

    for move in move_list:
        min_max.move(*move)

    removed_pieces = min_max.get_removed_pieces(old_game, min_max._game,
                                                min_max._game.whose_turn())
    assert removed_pieces == [25, 18, 11]