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
|
import os
|
||||||
|
|
||||||
builder = TextFileMazeBuilder()
|
builder = TextFileMazeBuilder()
|
||||||
maze = builder.buildFromFile("maze.txt")
|
maze = builder.buildFromFile("no_exit_maze.txt")
|
||||||
print("Лабиринт:\n")
|
print("Лабиринт:\n")
|
||||||
maze.printMaze()
|
maze.printMaze()
|
||||||
print("Выберете алгоритм")
|
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