예제 #1
0
def test_simple_iteration_directly_from_board():

    board = Board(20, 20)
    positions = [(1, 2), (3, 4), (5, 6), (7, 8)]
    check_positions = list(positions)

    for tile in board.iter_positions(positions):
        print(tile.pos)
        check_pos = check_positions.pop(0)
        assert tile.pos == check_pos

    assert check_positions == []
예제 #2
0
def test_sur_iter_groub_by_dir_changes_directly_from_board():

    board = Board(10, 10)
    positions = [
        (1, 2),
        (1, 3),
        (1, 4),
        (1, 5),
        (2, 5),
        (3, 5),
        (4, 5),
        (5, 5),
        (6, 5),
        (7, 5),
        (8, 5),
        (7, 6),
        (6, 7),
        (5, 8),
        (4, 9),
        (3, 8),
        (2, 7),
        (1, 6),
        (0, 5),
    ]

    group_marker = "a"

    for tile_group in board.iter_positions(positions).group_by(
        lambda b: b.changed_direction
    ):
        print(*map(str, tile_group))
        tile_group[0].data = group_marker.upper()
        for tile in tile_group[1:]:
            tile.data = group_marker
        group_marker = chr(ord(group_marker) + 1)

    render_result = """

		..........
		..........
		.A........
		.a........
		.a........
		daBbbbbbb.
		.d.....C..
		..d...c...
		...D.c....
		....c.....

	"""
    assert strip_multiline(board.render()) == strip_multiline(render_result)