Exemplo n.º 1
0
def test_attack_miss_player_when_charged_not_adjacent():
    envs, shared_state = setup(positions=[(1, 0), (1, 1)],
                               walls=[(1, 3)],
                               additional_keys=[(1, 2)])
    env = envs[0]
    env2 = envs[1]

    # Fully recharge
    for i in range(20):
        env.step(FourKeysActions.NOTHING)
        env2.step(FourKeysActions.NOTHING)

    env2.step(FourKeysActions.RIGHT)  # Pickup key
    env2.step(FourKeysActions.LEFT)
    env2.step(FourKeysActions.RIGHT)

    assert env2.keys == 1
    assert count_keys(shared_state.board) == 4

    assert env.attack_recharge == ATTACK_FULL_CHARGE

    env.step(FourKeysActions.ATTACK)
    assert env.attack_recharge == ATTACK_FULL_CHARGE
    assert env2.keys == 1
    assert count_keys(shared_state.board) == 4
Exemplo n.º 2
0
def test_drop_key_add_to_board():
    envs, shared_state = setup(positions=[(1, 1)],
                               walls=[(1, 3)],
                               additional_keys=[(1, 2)])
    env = envs[0]
    env.step(FourKeysActions.RIGHT)  # Pickup key
    assert count_keys(shared_state.board) == 4
    env.step(FourKeysActions.DROP_KEY)
    assert count_keys(shared_state.board) == 5
Exemplo n.º 3
0
def test_key_remove_from_game():
    envs, shared_state = setup(positions=[(1, 1)],
                               walls=[(1, 3)],
                               additional_keys=[(1, 2)])
    env = envs[0]
    assert len(shared_state.keys) == 5
    assert count_keys(shared_state.board) == 5
    env.step(FourKeysActions.RIGHT)
    assert len(shared_state.keys) == 4
    assert count_keys(shared_state.board) == 4
def test_oversaturation_7x7_board_builds():
    # The wall structure prevents more than two keys from being added
    # This behavior will likely change in the future to try lower saturation automatically
    board = build_board(side_length=7, num_seed_walls=10)
    assert get_side_length(board) == 7
    assert ensure_walls_exist(board)
    assert count_keys(board) == 2
def test_blank_15x15_board_has_correct_key_count():
    board = build_board(side_length=15, num_seed_walls=0)
    assert get_side_length(board) == 15
    assert count_keys(board) == 4
def test_saturated_7x7_board_all_keys_reachable():
    board = build_board(side_length=7, num_seed_walls=3)
    assert get_side_length(board) == 7
    assert count_keys(board) == 4
    assert len(get_reachable_key_locations(board)) == 4
def test_saturated_7x7_board_has_clear_edges():
    # Edges should always be clear in the game design to allow movement on perimeter of board
    board = build_board(side_length=7, num_seed_walls=3)
    assert get_side_length(board) == 7
    assert count_keys(board) == 4
    assert edges_clear(board)
def test_saturated_7x7_board_has_correct_key_count():
    board = build_board(side_length=7, num_seed_walls=3)
    assert get_side_length(board) == 7
    assert count_keys(board) == 4
def test_saturated_30x30_board_has_clear_edges():
    board = build_board(side_length=30, num_seed_walls=5)
    assert get_side_length(board) == 30
    assert count_keys(board) == 4
    assert edges_clear(board)
Exemplo n.º 10
0
def test_saturated_30x30_board_has_correct_key_count():
    board = build_board(side_length=30, num_seed_walls=5)
    assert get_side_length(board) == 30
    assert count_keys(board) == 4