예제 #1
0
def test_rolltree():
    board = Board()
    board.board = [[
        9, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        1, 0
    ],
                   [
                       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                       0, 0, 0, 0, 0, 14, 0
                   ]]
    player = ComputerPlayer(1)
    dice = Dice()
    dice.set_dice(1, 1)
    rulebook = RuleBook(board, player, dice)
    rolltree = RollTree([], Move(1, 8, 7), rulebook, 1, 4)

    test_dice = Dice()
    test_dice.set_dice(1, 0)
    assert rolltree.rulebook.dice == test_dice

    rolltree.activate()
    assert len(rolltree.children) == 1
    assert rolltree.traverse_roll_tree(rolltree, []) == [[
        Move(1, 8, 7),
        Move(1, 7, 6),
        Move(1, 6, 5),
        Move(1, 5, 4)
    ]]

    rulebook.board.board = [[
        9, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        1, 0
    ],
                            [
                                0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                0, 0, 0, 0, 0, 0, 0, 0, 14, 0
                            ]]
    rolltree = RollTree([], Move(1, 2, 1), rulebook, 1, 4)
    rolltree.activate()
    assert rolltree.traverse_roll_tree(rolltree,
                                       []) == [[Move(1, 2, 1),
                                                Move(1, 1, 0)]]

    rulebook.board.board = [[
        9, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        1, 0
    ],
                            [
                                3, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                0, 0, 0, 0, 0, 0, 0, 0, 0, 0
                            ]]
    rulebook.dice.set_dice(1, 6)

    assert rulebook.generate_legal_ply_list() == [
        [Move(1, 1, 0), Move(1, 5, 0)], [Move(1, 5, 4),
                                         Move(1, 4, 0)],
        [Move(1, 4, 3), Move(1, 5, 0)], [Move(1, 3, 2),
                                         Move(1, 5, 0)],
        [Move(1, 2, 1), Move(1, 5, 0)]
    ]
예제 #2
0
def test_next_move(monkeypatch, test_humanplayer):
    board = Board()
    dice = Dice()
    dice.set_dice(2, 1)
    monkeypatch.setattr('builtins.input', lambda x: '13 11')
    assert test_humanplayer.next_move(board, dice) == Move(0, 13, 11)

    monkeypatch.setattr('builtins.input', lambda x: '24 23')
    assert test_humanplayer.next_move(board, dice) == Move(0, 24, 23)

    monkeypatch.setattr('builtins.input', lambda x: '6 5')
    assert test_humanplayer.next_move(board, dice) == Move(0, 6, 5)
예제 #3
0
def test_is_valid_number_of_positions(test_rulebook):
    dice = Dice()
    dice.set_dice(1, 2)
    move = Move(0, 24, 23)
    assert test_rulebook.is_valid_number_of_positions(move, dice)