Ejemplo n.º 1
0
 def test_big_maze(self):
     self.assertEqual(
         read_maze('MazeTest/maze5.txt')[0], [
             '"_xxxx____xxx___xxxxxx___________xx__xxx"\n',
             '"___xx__xx_x_xxx______x_x__x_x_x_x_x____F__xxx_____x"\n',
             '"___x__x_x_x___x_x______x____xxx_______xxxxx____xx"\n',
             '"xx___xx__x______x___xx"\n',
             '"xxx________xxxxxxxxxxxxx_____xxxx_xxx___"\n', '"_x__"\n',
             '"______xxxx___xxxxxx_xxxxx_____xxx__xxx_______"\n',
             '"____xxxx_______xxxxx______xxxx____xxx____xx"\n',
             '"___xxxxx_xxxxx"\n',
             '"_xxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"\n',
             '"_______x________xxxx_____xxx____________________xxx__xxxx____xxx"\n',
             '"x___xx____xxx_________xx_______xx___xx_______xxx______xx____"\n',
             '"__xxxxxxxxxxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxx__xxx______x_"\n',
             '"x_x___x___x___x___x___x___x___x___x___x___x___x___x"\n',
             '"x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x"\n',
             '"x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x"\n',
             '"x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x"\n',
             '"x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x"\n',
             '"x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x"\n',
             '"x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x_x"\n',
             '"x___x___x___x___x___x___x___x___x___x___x___x___x____"\n',
             '"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_"\n',
             '"____________________________________________________"\n',
             '"xxx___xx__xx___xxxxx__xxxxx"\n',
             '"xxxx__xx______xx______xx_S__"\n',
             '"xx_xx_xx__xx__xx______xxxxx_"\n',
             '"xx__xxxx__xx__xx______xx____"\n',
             '"xx___xxx__xx___xxxxx__xxxxx__"\n',
             '"_____________________________"'
         ])
Ejemplo n.º 2
0
 def test_wall_maze(self):
     self.assertEqual(
         read_maze('MazeTest/maze10.txt')[0], [
             '"_____xx____S"\n', '"_____xx_____"\n', '"_____xx_____"\n',
             '"____________"\n', '"_____xx_____"\n', '"_____xx_____"\n',
             '"F____xx_____"'
         ])
Ejemplo n.º 3
0
 def test_many_starts(self):
     self.assertEqual(
         read_maze('MazeTest/maze4.txt')[0], [
             '"S__xx__xxx"\n', '"___xx__xxS"\n', '"xx__x_____"\n',
             '"____F_xxx_"\n', '"__x_x_xxxx"\n', '"______x_x_"\n',
             '"xx_S_xx__x"'
         ])
Ejemplo n.º 4
0
 def test_many_finishes(self):
     self.assertEqual(
         read_maze('MazeTest/maze3.txt')[0], [
             '"S__xx__xxx"\n', '"___xx__xx_"\n', '"xx__x_____"\n',
             '"____x_xxx_"\n', '"__x_x_xxxF"\n', '"______x_x_"\n',
             '"xx_F_xx__x"'
         ])
Ejemplo n.º 5
0
 def test_different_column_and_lines_lengths(self):
     self.assertEqual(
         read_maze('MazeTest/maze2.txt')[0], [
             '"_"\n', '"S__xx__xxx"\n', '"___xx_____"\n', '"xx__x__x__"\n',
             '"____x__x_____"\n', '"_xxx__x___xx_"\n', '"_____xx_x____"\n',
             '"xxxxxxx____"\n', '"F_______"'
         ])
Ejemplo n.º 6
0
 def test_different_line_lengths(self):
     self.assertEqual(
         read_maze('MazeTest/maze0.txt')[0], [
             '"S__xx__xxx"\n', '"___xx__xx_"\n', '"xx__x______x__"\n',
             '"____x_xxx__x__"\n', '"__xx__xxxx___F"\n', '"______x_x_"\n',
             '"xx___xx__x"'
         ])
Ejemplo n.º 7
0
 def test_back_maze(self):
     self.assertEqual(
         read_maze('MazeTest/maze12.txt')[0], [
             '"__________"\n', '"__xxxxx__x"\n',
             '"__x_________________________________________"\n',
             '"__x_S_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx_"\n',
             '"__x___x_____________________________________"\n',
             '"__xxxxx___"\n', '"_________F"'
         ])
Ejemplo n.º 8
0
def solve_maze(maze_name):
    solved_maze_name = '{}_solved.txt'.format(splitext(maze_name)[0])
    lines, maze_data = read_maze(maze_name)
    maze = parse_maze(maze_data)
    path = search_path(maze)
    draw_path(lines, solved_maze_name, path)

    with open(solved_maze_name, 'r') as solved_maze_file:
        solved_maze_data = solved_maze_file.read()
    return solved_maze_data
Ejemplo n.º 9
0
 def test_hole_maze(self):
     self.assertEqual(
         read_maze('MazeTest/maze13.txt')[0], [
             '"xxxxxxx"\n', '"xx____S"\n', '"xx_xxxx"\n', '"xx___xx"\n',
             '"xxxx_xx"\n', '"xxF__xx"'
         ])
Ejemplo n.º 10
0
 def test_ladder_maze(self):
     self.assertEqual(
         read_maze('MazeTest/maze11.txt')[0], [
             '"F_______"\n', '"____x__x"\n', '"___x__x_"\n', '"__x__x__"\n',
             '"__x__x__"\n', '"___x__x_"\n', '"____x__x"\n', '"_____x_S"'
         ])
Ejemplo n.º 11
0
 def test_closed_maze(self):
     self.assertEqual(
         read_maze('MazeTest/maze8.txt')[0],
         ['"Sxx"\n', '"xxx"\n', '"xxF"'])
Ejemplo n.º 12
0
 def test_second_small_maze(self):
     self.assertEqual(read_maze('MazeTest/maze7.txt')[0], ['"_S"\n', '"F"'])
Ejemplo n.º 13
0
 def test_first_small_maze(self):
     self.assertEqual(read_maze('MazeTest/maze6.txt')[0], ['"S"\n', '"F"'])