コード例 #1
0
def test_action_mask_tsu():
    state = State(13, 6, 2, 1, tsu_rules=True)
    stack = [_, _, _, _, _, _, _, _] * state.field.offset
    stack += [
        R,
        _,
        R,
        G,
        _,
        G,
        _,
        _,
    ]
    state.field = TallField.from_list(stack,
                                      num_layers=state.num_layers,
                                      tsu_rules=state.tsu_rules)
    state.render()
    mask = state.get_action_mask()
    print(mask)
    assert (len(mask) == 5 + 5 + 6 + 6)
    for i, (x, orientation) in enumerate(state.actions):
        if x in (1, 4):
            assert (mask[i])
        elif orientation in (0, 2) and x in (0, 3):
            assert (mask[i])
        else:
            assert (not mask[i])
コード例 #2
0
def test_complex_resolve():
    stack = [
        R,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        Y,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        Y,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        Y,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        R,
        G,
        B,
        Y,
        _,
        _,
        _,
        _,
        R,
        R,
        G,
        B,
        _,
        _,
        _,
        _,
        G,
        G,
        B,
        B,
        _,
        _,
        _,
        _,
    ]
    field = TallField.from_list(stack)
    field.render()
    print()
    score, chain = field.resolve()
    field.render()
    stack = field.to_list()
    assert (stack == [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
    ])
    assert (chain == 3)
    expected = 4 * 10 * (1)  # Reds
    expected += 5 * 10 * (8 + 2)  # Greens
    # Blues, yellows and reds
    num_cleared = 26
    chain_power = 16
    group_bonuses = 0 + 0 + 3 + 3 + 3
    color_bonus = 6
    expected += num_cleared * 10 * (chain_power + group_bonuses + color_bonus)
    assert (score == expected)
コード例 #3
0
def test_resolve_plain(tsu_rules):
    stack = [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        B,
        _,
        _,
        _,
        _,
        _,
        R,
        R,
        G,
        _,
        _,
        _,
        _,
        _,
        R,
        R,
        G,
        G,
        _,
        _,
        _,
        _,
    ]
    field = TallField.from_list(stack, tsu_rules=tsu_rules)
    field.render()
    print()
    score, chain = field.resolve()
    field.render()
    stack = field.to_list()
    assert (stack == [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        B,
        _,
        _,
        _,
        _,
        _,
    ])
    assert (chain == 2)
    assert (score == 940)
コード例 #4
0
def test_clear_groups(tsu_rules):
    O = Y + 1  # noqa
    stack = [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        G,
        O,
        O,
        _,
        Y,
        _,
        R,
        _,
        G,
        O,
        O,
        _,
        Y,
        Y,
    ]
    field = TallField.from_list(stack, tsu_rules=tsu_rules, has_garbage=True)
    field.render()
    score = field.clear_groups(5)
    print(score)
    field.render()
    stack = field.to_list()
    expected = [_] * 8 * 3
    if tsu_rules:
        expected += [O, _, _, _, _, _, _, _]
    else:
        expected += [_] * 8
    assert (score == 10 * (4 + 12) * (3 + 10 + 96))
    assert (stack == expected + [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        _,
        Y,
        _,
        _,
        _,
        _,
        _,
        O,
        _,
        Y,
        Y,
    ])
コード例 #5
0
def test_mirror():
    stack = [
        R,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
    ]
    field = TallField.from_list(stack)
    field.render()
    field.mirror()
    print()
    field.render()
    stack = field.to_list()
    assert (stack == [
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
    ])
コード例 #6
0
def test_encode():
    stack = [
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
    ]
    field = TallField.from_list(stack)
    field.render()
    encoded = field.encode()
    expected = [
        [
            [0, 1, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 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],
            [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, 0, 0, 0, 0],
            [0, 0, 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, 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, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 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],
            [1, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 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],
        ],
    ]
    assert (encoded == expected).all()
コード例 #7
0
def test_gravity():
    stack = [
        R,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
    ]
    field = TallField.from_list(stack)
    field.render()
    field.handle_gravity()
    print()
    field.render()
    stack = field.to_list()
    assert (stack == [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        G,
        R,
        _,
        _,
        _,
        _,
        R,
        G,
    ])
コード例 #8
0
def test_resolve_garbage():
    O = G + 1  # noqa
    stack = [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        O,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        O,
        O,
        R,
        _,
        _,
        _,
        _,
        _,
        O,
        O,
        G,
        O,
        _,
        _,
        _,
        _,
        O,
        O,
        G,
        O,
        O,
    ]
    field = TallField.from_list(stack, tsu_rules=True, has_garbage=True)
    field.render()
    print()
    score, chain = field.resolve()
    field.render()
    stack = field.to_list()
    assert (stack == [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        O,
        _,
        O,
        _,
        _,
        _,
        _,
        _,
        O,
        O,
        G,
        O,
        _,
        _,
        _,
        _,
        O,
        O,
        G,
        O,
        O,
    ])
    assert (chain == 1)
    assert (score == 700)
コード例 #9
0
def test_resolve_ghost():
    stack = [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        P,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        P,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        P,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        P,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
    ]
    field = TallField.from_list(stack, tsu_rules=True)
    field.render()
    print()
    score, chain = field.resolve()
    field.render()
    stack = field.to_list()
    assert (stack == [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        _,
        _,
    ])
    assert (chain == 2)
    assert (score == 360)
コード例 #10
0
def test_garbage_tsu():
    state = State(13, 6, 5, 1, tsu_rules=True, has_garbage=True)
    stack = [_, _, _, _, _, _, _, _] * state.field.offset
    stack += [
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
    ]
    state.field = TallField.from_list(stack,
                                      num_layers=state.num_layers,
                                      tsu_rules=state.tsu_rules,
                                      has_garbage=state.has_garbage)
    state.render()
    state.add_garbage(39)
    state.render()
    state.field.resolve()
    assert (state.field.popcount == 51)
コード例 #11
0
def test_has_moves_tsu():
    state = State(13, 2, 4, 1, tsu_rules=True)
    stack = [_, _, _, _, _, _, _, _] * state.field.offset
    stack += [
        _,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        G,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        B,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        B,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
        Y,
        R,
        _,
        _,
        _,
        _,
        _,
        _,
    ]
    state.field = TallField.from_list(stack,
                                      num_layers=state.num_layers,
                                      tsu_rules=state.tsu_rules)
    state.render()
    assert (state.get_children())
コード例 #12
0
def test_resolve_large():
    state = State(16, 7, 2, 1)
    state.deals[0] = (0, 0)
    stack = [
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        _,
        G,
        G,
        G,
        _,
        _,
        _,
        _,
        _,
        R,
        R,
        R,
        G,
        G,
        G,
        _,
    ]
    state.field = TallField.from_list(stack, num_layers=state.num_layers)
    state.render()
    reward = state.step(0, 1)
    assert (reward == 8500 + 760)