Пример #1
0
            new_combo[len(piece) - 1] += 1
            res.add(tuple(new_combo))

    seen[sorted_coords] = res
    return res


if __name__ == '__main__':
    from test import Test as test

    test.expect(
        validate_battlefield([[1, 0, 0, 0, 0, 1, 1, 0, 0, 0],
                              [1, 0, 1, 0, 0, 0, 0, 0, 1, 0],
                              [1, 0, 1, 0, 1, 1, 1, 0, 1, 0],
                              [1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                              [0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
                              [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
                              [0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
                              [0, 0, 0, 1, 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]]),
        "Must return true for valid field")

    # concat test case
    test.expect(
        validate_battlefield([[1, 0, 0, 0, 0, 1, 1, 0, 0, 0],
                              [1, 1, 0, 0, 0, 0, 0, 0, 1, 0],
                              [1, 1, 0, 0, 1, 1, 1, 0, 1, 0],
                              [1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                              [1, 0, 0, 0, 0, 0, 0, 0, 1, 0],
                              [0, 0, 0, 0, 1, 1, 1, 0, 0, 0],
                              [0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
Пример #2
0
                         '11111100000', '1B111100000', '11110111100',
                         '11100111110', '10000001111', '11110000111',
                         '11110000111', '00110111111', '01111111111',
                         '0110011X100', '01100011100'
                     ],
                     [
                         '000001111110000', '000001001110000',
                         '000001001111100', 'B11111000001111',
                         '0000111000011X1', '000011100000111',
                         '000000100110000', '000000111110000',
                         '000000111110000', '000000011100000'
                     ]]
    example_sols = [['RRDRRRD', 'RDDRRDR', 'RDRRDDR'],
                    ['ULDRURRRRUURRRDDDRU', 'RURRRULDRUURRRDDDRU'],
                    ['ULURRURRRRRRDRDDDDDRULLLLLLD'], ['DRURURDDRRDDDLD'],
                    [
                        'RRRDRDDRDDRULLLUULUUURRRDDLURRDRDDR',
                        'RRRDDRDDRDRULLLUULUUURRDRRULDDRRDDR',
                        'RRRDRDDRDDRULLLUULUUURRDRRULDDRRDDR',
                        'RRRDDRDDRDRULLLUULUUURRRDDLURRDRDDR'
                    ]]
    for i, x in enumerate(example_tests):
        actual = blox_solver(x)
        test.expect(actual in example_sols[i])

    # pos = ((0, 0),)
    # for move in "DRULDRULDRRDDRR":
    #     new_pos = move_pos(pos, move)
    #     print(f"{move}: {pos} -> {new_pos}")
    #     pos = new_pos