result
This commit is contained in:
parent
797c260aaa
commit
61908239da
100
romanovpv/task 2/docs/data/big_maze.txt
Normal file
100
romanovpv/task 2/docs/data/big_maze.txt
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
####################################################################################################
|
||||
#S ### ## # ## ## # # # # ## # ## ## # #### ##### # ## ## # ## # ### #
|
||||
# # ### # ## # # # # ## # # # # # # ## ## # # ### ## # # #
|
||||
# # # # ## # # ## ## # # # ## # # # #### # # ### ### # ## # # # #
|
||||
# ### ### ## ## # ### # ## # # # # # # ## ## ## ## # #### ### ## # ##
|
||||
# # # # ## # # # # ## ## # # ## # #### ### #### # # ### ### # ###
|
||||
# ## # # # # # ## # ## ## ## ## # ### ## #### ## # # # # ## ##
|
||||
# ## # # # #### # # # # # # # ###### # # # # ## ## # # ## # ## ## ##
|
||||
# # # # # ## ## # # # ### # ## # # ### # # ### ## # ## # # # ## # # ## ### #
|
||||
# ## ## # # # # # ## #### ### # ## ##### # # # # # # # ##
|
||||
# # ### ## ## # ### # ## # # ##### # # # # ### ### # ### ###
|
||||
# # ## # ## ## # # # ## ## # # # #### ## # # # ## # ####
|
||||
# # ### # ## # # # # # # # # # # # # # ## # #### # # # # # # ##
|
||||
# ### # ## ## # # # ## # # # ## ### # ## # ## # ## ## # ## # ### ## ## ##
|
||||
# ## #### ###### # ## ## ## # # ## # #### # #### ## ## # # # # ## ## # ## #
|
||||
# ## # ### ### ## # ## ## # ## # # # # ## # # ## ## # # # # # ## #
|
||||
# ## ## ## # ### # ## # ## # # # ##### # #### # ## # # # ## # # ## ### ##
|
||||
# # # ## ## ## # #### ##### # ## ## # ### # # # # # # # ### ##
|
||||
# # # # # ## ## # ### # # ## # #### # ### ## # # ### ###### # ## #
|
||||
# ## # # # ### # # # ## # # # ## # # ### ## ## #
|
||||
# # # # # # ## # # # # ## # # # # # # # ### # ##### # # # # ### ## # # ##
|
||||
# ### # # # ## # ### # # # # ## ## # ### ## ### # # # # # # ## #
|
||||
# # ## ### # # # # ## ##### #### # # ### ### #### # ## # ###
|
||||
# # # # # # # ## # # ## ### # # ## # # ### # # # ## # # # #
|
||||
# # #### # # ##### # # ### ## # # # # # ## ### ## # # # ### # ## #
|
||||
# # ### ## # # ## # # ## ### # ## ## # # # # # # # ## # # #
|
||||
# # ## # ## # # # ### ## # ## # # ### # # # ### # # # # # ##
|
||||
# # # # # ## # # # # # ## # #### # # ## # # # ###### ### ###
|
||||
# # # # ##### ## # ## ### ## # ## ## # # ## # ##### ## ## # # ## ##
|
||||
# # # ### # # ## # ### # # # # ## # # # ## # # # # #### # # # #
|
||||
# ### # # ## # # ## # # ## # # # #### ### # # ### # # ### ### ####
|
||||
# ##### ## # # ## # # # # ## ### # # # ## # # ### ## # # # ## #
|
||||
# ## # ## # ## #### # ## # # ## # ## ## # # ## ## # ### # # # # #
|
||||
# # #### ## ### ## ### ## # # ## # ##### # # # ## ## ## ### ### # ##### # ## # #
|
||||
# # # # ###### ## ## ### # # ## # # ## # # ### ## #### # # ## # #
|
||||
# # # ## ### #### # # ## # # # ## # ## # # # ## # # # #### # # ## #
|
||||
# # # # # # ### ## # # ## # # ##### # # # # # ### ## ## ### # #
|
||||
# # ## # # # # ## ## # ## # # # #### ## # ## ##### # ## # # # ### # #
|
||||
# ## ## ## # ## # ## ### # # # # ## # ## # # # ### #### # # # #
|
||||
# ### ### # # ## ##### # # # #### # # # ## ## ## # ### ## # ### # ### # # #
|
||||
# # # ## ## # ## ## ## # # # # # ## # # ## ## ## # ## ## ## # # #
|
||||
# ## # # ### # # # # # ## # # # ##### # # # # # #### # # ###
|
||||
# ### # ## ## ## # # # # # # # # # #### ## # ## # # # # ## # ## #
|
||||
# # # # ### # # ## # # #### # # # # ## # ## ## ## ## # # ## # # # ## #
|
||||
# ## ## # ## # ### # ## # ##### # # # # ## # # # #### ## ##### #
|
||||
# # ## # # # ## # # #### # ## ## # # # ## ## ## #### #### ## # ###
|
||||
# # # ## ## # # # # ## # ## # # # # ## # # ## # # ## # ##
|
||||
# #### # # ## # ## # ### # # # # # #### # # # ### # # # # # # ##
|
||||
# # # # # # # ## # # ## # # # # ## # ## # # # # ### # ## # # ### #
|
||||
# ### # ##### ## # # ## ### ## # #### ## # ## ### ## # # # # # # ### ##
|
||||
# # ## #### ## # # # # # # # ## # ###### # ## #### ###### # ####
|
||||
# # # ##### # ## # ## # # # ## ### # # ## # # # # # # # #
|
||||
# # # # # # # # # # # ## ## # # # ## ### ### # # ### #
|
||||
# ## ## # # # # # # # # ## #### # # #### # #### # ## # # ## # ####
|
||||
# # # ## # # # ## ## ### # # # # # # # ### # # # # ## ## # # # ## # #
|
||||
# # ## #### # ## ## ## # # # ### # # ## ## ####### ### # # # ##
|
||||
# # ##### # # # # # # ## # # ### # #### # # # #### # # # # #
|
||||
# # ## # ### # # ## # # # # # ### ## # ## # # ## # # # ### # ## #####
|
||||
# # ## #### ## # # # ## ### # ## # ### # ## # #### ## # # ## # #
|
||||
# # ## ## ## # # ### # # # ### ### # # # ##### # # # # # ##
|
||||
# # ## # # # # # ### # ## # # # ## # # # ## # ### ### # # # ##
|
||||
# # ### ## ##### ## # ## # # ###### # ## ####### # # ## # ### ## ## # # ##### ##
|
||||
# ### # ### # # # # # # ##### # # # # ##### # ##### #
|
||||
# # # ## # # # #### ## # ## # # # # # ## ## ### # # # #### #
|
||||
# ### # ## # # # ## ## # # # ##### # # # ## # # # ## # ### ## # #
|
||||
# # # ## ## # # # # ## ## # ## # # ## ## # # ## # ##### # ####
|
||||
# ##### # #### # # # #### # # ## ## # # ## ## # # ##### # ##### # ## ##
|
||||
# ## # ## # # # ## # # # ### # ### ##### #### # # # # # ## ## # # #
|
||||
# # ### # # # #### # # ## # # ## # ### ### ## ## ## # # ## # # # # # ## # # #
|
||||
# # # # # # # # # # # ## # # ## # ## ### # # # # ### # # ## ### ## #
|
||||
# ## ## # # ### ##### ## # ### ## # # ## # # # # ##### # ### ### ## # #
|
||||
# ## ## ## ## # ## ### ## ### # # # # # # ## # # # # ##
|
||||
# # # #### # # # # # #### # # # # # # ### ## ## #
|
||||
# # ## ## ### # # # # ## # #### ## # ## # # # # ### ### ## # # # # ###
|
||||
# # # ## # ## ## ## ## # ## # # ### # # # # # # ### # #### # # # ## #
|
||||
# # ### # ## ## # # # ## # ## # # # # # # ## # # # # #
|
||||
# # # # # # # # ## #### # ### ## ## # ## # ### # ### ##
|
||||
# # # ## # # ### ## # # ### # ## ## # # ### # #### # # # # ## #
|
||||
# # # # # ### # # # # ### ### ## # # # ## ## # ## ### # # # ##
|
||||
# ## #### # ### # # ##### # # # # ## ## # #### #### #
|
||||
# # # # # # # ## # ## ## # # ## ## # ### # ### # #
|
||||
# # # # ## # # ## # ### ### # ### #### # # # ### ## # ## # ## # ### ##
|
||||
# ### ## ## # # # # # # # ### ### ## ## ### # ## ## ## ### ##
|
||||
# ## # ## ### ## # #### # ## # # ## ## # # ## ## ## # ## ## # #
|
||||
# # ## ## # ## # # # # #### # ## ## ## # ### # ### #
|
||||
# # # # # # ## # # # # # # ## ## # ##### # # # # ###### ### #
|
||||
# # # ## ### ## ### # # ## ## # # # # ### # # ## ### #### # #
|
||||
# ## # ## # ### # # # # ## # # ### # # # # #### # # ### # # # ## ####
|
||||
# # # # #### ## # ## # ### #### # # # # # # # # # # ## ### # ##
|
||||
# ## ## ### # ### ## ## ## #### #### ## ## ### # ## # # ## # # # # # # # #
|
||||
# # # # ### # # ## # # # # ## ### ## # ### # # # # ## # # # ###
|
||||
# # # #### # ## # # # ## ### # ## ## ## ## ## ### # ### # # # #
|
||||
# # # # # # ## # # ## ## ## # ##### # # # # ## ### # ##### # #
|
||||
# ## # ### # # # # # ## # ## # # ## # ## ## # # # # ## #### # # # # # # #
|
||||
# # ## ## ## #### # # ## # # # # ### #### # ### # # # # ### # #
|
||||
# # #### # ## # ## ## ## ## # #### # ## # # # ### ## ### # # #
|
||||
# # ### ## ## ## # ### ### # # # # # ## ## ## # ##### ## # # # #
|
||||
# ## # # ## # # # ## ## # # # # # # ## # ### # # # ## ### ## #
|
||||
# E#
|
||||
####################################################################################################
|
||||
43
romanovpv/task 2/docs/data/generate_mazes.py
Normal file
43
romanovpv/task 2/docs/data/generate_mazes.py
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import random
|
||||
|
||||
def save_maze(filename, width, height, wall_probability):
|
||||
maze = []
|
||||
for i in range(height):
|
||||
row = ""
|
||||
for j in range(width):
|
||||
if i == 0 or i == height-1:
|
||||
row += "#"
|
||||
elif j == 0 or j == width-1:
|
||||
row += "#"
|
||||
else:
|
||||
if random.random() < wall_probability:
|
||||
row += "#"
|
||||
else:
|
||||
row += " "
|
||||
|
||||
maze.append(list(row))
|
||||
maze[1][1] = "S"
|
||||
maze[height-2][width-2] = "E"
|
||||
|
||||
for i in range(1, height-1):
|
||||
maze[i][1] = " "
|
||||
for j in range(1, width-1):
|
||||
maze[height-2][j] = " "
|
||||
maze[1][1] = "S"
|
||||
maze[height-2][width-2] = "E"
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
for row in maze:
|
||||
f.write("".join(row)+"\n")
|
||||
save_maze(
|
||||
"medium_maze.txt",
|
||||
50,
|
||||
50,
|
||||
0.30
|
||||
)
|
||||
save_maze(
|
||||
"big_maze.txt",
|
||||
100,
|
||||
100,
|
||||
0.40
|
||||
)
|
||||
print("Лабиринты созданы")
|
||||
|
|
@ -5,7 +5,7 @@ from observer_command import ConsoleView, Player, MoveCommand
|
|||
import os
|
||||
|
||||
builder = TextFileMazeBuilder()
|
||||
maze = builder.buildFromFile("maze.txt")
|
||||
maze = builder.buildFromFile("no_exit_maze.txt")
|
||||
print("Лабиринт:\n")
|
||||
maze.printMaze()
|
||||
print("Выберете алгоритм")
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
##########
|
||||
#S # #
|
||||
# ### #
|
||||
# ##E #
|
||||
##########
|
||||
50
romanovpv/task 2/docs/data/medium_maze.txt
Normal file
50
romanovpv/task 2/docs/data/medium_maze.txt
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
##################################################
|
||||
#S## # ## # # # # # # ## #
|
||||
# # # # # # # ### # #### # #
|
||||
# ## ## # # ## ### # # #
|
||||
# ## #### ### ## ## ## # # #
|
||||
# # #### # ## # # # ## ## # #####
|
||||
# # ## # ### ## # # #### # # #
|
||||
# # # # ### # ## # ##### # ### # #
|
||||
# # # # # # # # # # ## ### ##
|
||||
# # # # # # ## # ## ## # # #
|
||||
# # # # ### #### ### # # ## ## #
|
||||
# # ## # ## # # ## # ## # # ## ##
|
||||
# # # # # # # ##### ## # ### # # ##
|
||||
# # # ## ### ## # # # ## #
|
||||
# ## # # ### # # # # ## # #
|
||||
# # #### ### ### #### # ## # #
|
||||
# # # # # # # ## # ## # #
|
||||
# ## ## # # # # # # ## ### #
|
||||
# ## # ## # ## #### ### # #### # # #
|
||||
# ## ### # # # # # # ## #
|
||||
# # # ## # ##### ### # #
|
||||
# # # ## # # ## # #
|
||||
# # ## # # # # ## # # #
|
||||
# # # # # #
|
||||
# # ## ## # ## ## #
|
||||
# # ## ### # # # # ## ##
|
||||
# # #### # # ## # # # ## # ##
|
||||
# # # # # ## ## # # # # ####
|
||||
# # # # # ## ##### # # # ##
|
||||
# # ## # ## ### # # ## # ## ## #
|
||||
# # # ### ## ###### # # ## # # # #
|
||||
# # # ## # # # # # ##
|
||||
# # # # # # ## ## # # # ## #
|
||||
# ##### # # ## ## ## # ## ### ##
|
||||
# ## ## # # # ## # ## ##
|
||||
# # # # # ### # # # ### # #
|
||||
# ## # ## ### ## # ##
|
||||
# # ### # ## ## # ## ## # # # #
|
||||
# ## # ## # # ## #### # ## ##
|
||||
# ## # # # # ## ## # # # #
|
||||
# # # # # # # # # ## # #
|
||||
# # # # # # ## # ### # ###
|
||||
# ## # ## # # # ## # # #
|
||||
# # # # # # # # # # ## #
|
||||
# ## # # # # ## ## # ## # # # #
|
||||
# # # ## # # # ## # ## #
|
||||
# ## ## # # # # # ## # # # ## # #
|
||||
# # ## ## # # ## # # # # #
|
||||
# E#
|
||||
##################################################
|
||||
10
romanovpv/task 2/docs/data/no_exit_maze.txt
Normal file
10
romanovpv/task 2/docs/data/no_exit_maze.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
##########
|
||||
#S # #
|
||||
# ###### #
|
||||
# ###### #
|
||||
# ###### #
|
||||
# ###### #
|
||||
# ###### #
|
||||
# ###### #
|
||||
# ######E#
|
||||
##########
|
||||
10
romanovpv/task 2/docs/data/no_wall_maze.txt
Normal file
10
romanovpv/task 2/docs/data/no_wall_maze.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
##########
|
||||
#S #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# #
|
||||
# E#
|
||||
##########
|
||||
21
romanovpv/task 2/docs/data/result.py
Normal file
21
romanovpv/task 2/docs/data/result.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import csv
|
||||
|
||||
results = [
|
||||
["maze", "strategy", "time_ms", "cells visited", "path length"],
|
||||
["small_maze", "BFS", 0.173, 15, 15],
|
||||
["small_maze", "DFS", 0.198, 15, 15],
|
||||
["small_maze", "A*", 0.195, 15, 15],
|
||||
["medium_maze", "BFS", 7.228, 95, 95],
|
||||
["medium_maze", "DFS", 1.361, 189, 189],
|
||||
["medium_maze", "A*", 3.050, 95, 95],
|
||||
["big_maze", "BFS", 18.487, 195, 195],
|
||||
["big_maze", "DFS", 10.021, 497, 497],
|
||||
["big_maze", "A*", 4.471, 195, 195],
|
||||
["no_wall_maze", "BFS", 0.325, 15, 15],
|
||||
["no_wall_maze", "DFS", 0.251, 29, 29],
|
||||
["no_wall_maze", "A*", 0.396, 15, 15],
|
||||
]
|
||||
|
||||
with open("results.csv", "w", newline="") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerows(results)
|
||||
13
romanovpv/task 2/docs/data/results.csv
Normal file
13
romanovpv/task 2/docs/data/results.csv
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
maze,strategy,time_ms,cells visited,path length
|
||||
small_maze,BFS,0.173,15,15
|
||||
small_maze,DFS,0.198,15,15
|
||||
small_maze,A*,0.195,15,15
|
||||
medium_maze,BFS,7.228,95,95
|
||||
medium_maze,DFS,1.361,189,189
|
||||
medium_maze,A*,3.05,95,95
|
||||
big_maze,BFS,18.487,195,195
|
||||
big_maze,DFS,10.021,497,497
|
||||
big_maze,A*,4.471,195,195
|
||||
no_wall_maze,BFS,0.325,15,15
|
||||
no_wall_maze,DFS,0.251,29,29
|
||||
no_wall_maze,A*,0.396,15,15
|
||||
|
10
romanovpv/task 2/docs/data/small_maze.txt
Normal file
10
romanovpv/task 2/docs/data/small_maze.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
##########
|
||||
#S #
|
||||
# ###### #
|
||||
# # #
|
||||
###### # #
|
||||
# # #
|
||||
# ###### #
|
||||
# #
|
||||
# ######E#
|
||||
##########
|
||||
Loading…
Reference in New Issue
Block a user