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
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
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
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)
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
def test_andar_dois_passos_pro_lado(self): maze = ('. x',) self.assertEqual(2, solve(maze))
def test_ir_para_a_direita_vai_dar_problema(self): maze = (' ', ' . x ', ' ', ' ' ) self.assertEqual(2, solve(maze))
def test_andar_10_passos_em_cinco_colunas_sendo_duas_de_obstaculos(self): maze = ('.# ', ' # # ', ' #x') self.assertEqual(10, solve(maze))
def test_andar_quatro_passos_em_tres_linhas_invertido(self): maze = ('x#.', ' ', ' # ') self.assertEqual(4, solve(maze))
def test_andar_quatro_passos_em_tres_linhas(self): maze = ('.#x', ' ', ' # ') self.assertEqual(4, solve(maze))
def test_andar_cinco_passos_em_tres_linhas(self): maze = ('.# ', ' #x', ' ') self.assertEqual(5, solve(maze))
def test_andar_pro_lado(self): maze = ('.x',) self.assertEqual(1, solve(maze))
def test_andar_seis_passos_em_tres_linhas(self): maze = ('.#x', ' # ', ' ') self.assertEqual(6, solve(maze))
def test_andar_tres_passos_em_duas_linhas_com_inicio_e_fim_invertidos(self): maze = ('x ', ' .') self.assertEqual(3, solve(maze))
def test_andar_tres_passos_em_duas_linhas(self): maze = ('. ', ' x') self.assertEqual(3, solve(maze))
def test_andar_pro_lado_mas_tem_duas_linhas(self): maze = ('.x ', ' ') self.assertEqual(1, solve(maze))