Example #1
0
def test_solve():
    maze = [[4, 12, 12, 12, 10], [6, 12, 12, 12, 9], [5, 12, 12, 12, 10], [6, 12, 12, 12, 9], [5, 12, 12, 12, 8]]
    solution = [[x, 0] for x in range(5)] + [[x, 1] for x in reversed(range(5))] + [[x, 2] for x in range(5)] + \
        [[x, 3] for x in reversed(range(5))] + [[x, 4] for x in range(5)]
    assert solve(maze, [0, 0], [4, 4]) == solution

    maze[4][0] = maze[3][0] = 4
    assert solve(maze, [0, 0], [4, 4]) is None
Example #2
0
def test_growing_tree():
    size = 10
    maze = growing_tree(size, size)

    for x in range(size):
        assert solve(maze, [x, 0], [size - x - 1, size - 1]) is not None

    for y in range(1, size - 1):
        assert solve(maze, [0, y], [size - 1, size - y - 1]) is not None
Example #3
0
def test_no_solution_maze():
    """
    GIVEN a maze as input
    WHEN there is no valid move
    THEN respond that it's insoluble
    """
    input_maze = ["#####", "#o  #", "#####", "#x  #", "#####"]
    dummy, insoluble = maze.solve(input_maze)
    assert insoluble
Example #4
0
def test_solve_maze():
    """
    GIVEN a maze as input
    WHEN there is a valid move
    THEN advance until the exit is reached
    """
    input_maze = ["#####", "#o  #", "### #", "#x  #", "#####"]
    coord, dummy = maze.solve(input_maze)
    assert coord == (3, 1)
Example #5
0
        l += '#'
        maze.append(l)
    maze.append(ll)
    maze[1] = '#S' + maze[1][2:]
    maze[im.height] = maze[im.height][:-2] + 'E#'

    # maze_file = open('maze.txt', 'w+')
    # for i in maze:
    #     for j in i:
    #         maze_file.write(j)
    #     maze_file.write('\n')
    # maze_file.close()

    maze_obj = solver.Maze()
    maze_obj.read_personal(maze)
    solution = solver.solve(maze_obj)
    if solution:
        # print("\n\tI HAVE THE SOLUTION!\n")
        # maze_obj.write_file('solution.txt')
        conn.send(maze_obj.return_solution() + '\n')
    else:
        # print("\n\tI DON'T HAVE THE SOLUTION!\n")
        conn.send('INVALID\n')

    while conn.can_recv(timeout=4):
        readed = conn.recvline(timeout=4)
        # print(readed)
        if 'WooHoo you got it correct. Now solve a few more and get your flag.' in readed:
            break

    finished = False
Example #6
0
 def test_andar_dois_passos_pro_lado(self):
     maze = ('. x',)
     self.assertEqual(2, solve(maze))
Example #7
0
 def test_ir_para_a_direita_vai_dar_problema(self):
     maze = ('      ',
             '  . x ',
             '      ',
             '      ' )
     self.assertEqual(2, solve(maze))
Example #8
0
 def test_andar_10_passos_em_cinco_colunas_sendo_duas_de_obstaculos(self):
     maze = ('.#   ',
             ' # # ',
             '   #x')
     self.assertEqual(10, solve(maze))
Example #9
0
 def test_andar_quatro_passos_em_tres_linhas_invertido(self):
     maze = ('x#.',
             '   ',
             ' # ')
     self.assertEqual(4, solve(maze))
Example #10
0
 def test_andar_quatro_passos_em_tres_linhas(self):
     maze = ('.#x',
             '   ',
             ' # ')
     self.assertEqual(4, solve(maze))
Example #11
0
 def test_andar_cinco_passos_em_tres_linhas(self):
     maze = ('.# ',
             ' #x',
             '   ')
     self.assertEqual(5, solve(maze))
Example #12
0
 def test_andar_pro_lado(self):
     maze = ('.x',)
     self.assertEqual(1, solve(maze))
Example #13
0
 def test_andar_seis_passos_em_tres_linhas(self):
     maze = ('.#x',
             ' # ',
             '   ')
     self.assertEqual(6, solve(maze))
Example #14
0
 def test_andar_tres_passos_em_duas_linhas_com_inicio_e_fim_invertidos(self):
     maze = ('x  ',
             '  .')
     self.assertEqual(3, solve(maze))
Example #15
0
 def test_andar_tres_passos_em_duas_linhas(self):
     maze = ('.  ',
             '  x')
     self.assertEqual(3, solve(maze))
Example #16
0
 def test_andar_pro_lado_mas_tem_duas_linhas(self):
     maze = ('.x ',
             '   ')
     self.assertEqual(1, solve(maze))