From bb11731efd781f3b5cf8df52c61dd8a4809a8299 Mon Sep 17 00:00:00 2001 From: soldatkinao Date: Sat, 23 May 2026 13:50:28 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D0=B8=D1=80=D0=B8=D0=BD=D1=82=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B9=20=D0=BE=D1=82=D1=87=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soldatkinao/lab1/.~lock.otchet.docx# | 1 - soldatkinao/lab1/otchet.docx | Bin 85107 -> 85521 bytes soldatkinao/lab2/empty.txt | 1 + soldatkinao/lab2/labirint.py | 402 +++++++++++++++++++++++++++ soldatkinao/lab2/large.txt | 100 +++++++ soldatkinao/lab2/medium.txt | 50 ++++ soldatkinao/lab2/no_exit.txt | 6 + soldatkinao/lab2/results.csv | 16 ++ soldatkinao/lab2/small.txt | 10 + 9 files changed, 585 insertions(+), 1 deletion(-) delete mode 100644 soldatkinao/lab1/.~lock.otchet.docx# create mode 100644 soldatkinao/lab2/empty.txt create mode 100644 soldatkinao/lab2/labirint.py create mode 100644 soldatkinao/lab2/large.txt create mode 100644 soldatkinao/lab2/medium.txt create mode 100644 soldatkinao/lab2/no_exit.txt create mode 100644 soldatkinao/lab2/results.csv create mode 100644 soldatkinao/lab2/small.txt diff --git a/soldatkinao/lab1/.~lock.otchet.docx# b/soldatkinao/lab1/.~lock.otchet.docx# deleted file mode 100644 index 0704726..0000000 --- a/soldatkinao/lab1/.~lock.otchet.docx# +++ /dev/null @@ -1 +0,0 @@ -,ASSO/ASSO,Asso,18.05.2026 23:53,file:///C:/Users/ASSO/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/soldatkinao/lab1/otchet.docx b/soldatkinao/lab1/otchet.docx index e31109e744729aea7806bd6ef7bdcb8f9b9a0494..c8fafdfa17a2516c5accc81ad1ac73976a40a888 100644 GIT binary patch delta 6746 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

}O}uV|xo0I(*L~P2 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 KuN0oJ0Qf(GTMPyO delta 6404 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 ").strip().upper() + if cmd == 'W': + c = MoveCommand(player, 0, -1) + elif cmd == 'S': + c = MoveCommand(player, 0, 1) + elif cmd == 'A': + c = MoveCommand(player, -1, 0) + elif cmd == 'D': + c = MoveCommand(player, 1, 0) + elif cmd == 'F': + solver = MazeSolver(maze, BFS()) + t, v, l, ok = solver.solve() + if ok: + path = BFS().find_path(maze, maze.start, maze.exit) + view.update('path', path) + print(f"BFS: длина={l} время={t:.2f}ms посещено={v}") + else: + print("Путь не найден") + continue + elif cmd == 'G': + astar = AStar() + path = astar.find_path(maze, maze.start, maze.exit) + if path: + view.update('path', path) + print(f"A*: длина={len(path)} посещено={astar.visited_count}") + else: + print("Путь не найден") + continue + elif cmd == 'Z': + if player.undo(): + view.update('move', player.pos) + continue + elif cmd == 'Q': + break + else: + print("Неизвестная команда") + continue + if c.execute(): + view.update('move', player.pos) + else: + print("Стена!") + +def main(): + print("1 - Игра\n2 - Эксперимент") + ch = input("> ") + builder = TextMazeBuilder() + if ch == '1': + maze = builder.load('small.txt') #легкая прогулка) + play_game(maze) + else: + files = ['small.txt', 'medium.txt', 'large.txt', 'empty.txt', 'no_exit.txt'] + run_experiment(files) + +if __name__ == '__main__': + main() +print ("\nЭто было долго, но вроде бы все готово. ") #можно конечно сделать многофайловую программу чтобы использовать классы как блоки длч строительства \ No newline at end of file diff --git a/soldatkinao/lab2/large.txt b/soldatkinao/lab2/large.txt new file mode 100644 index 0000000..06e2275 --- /dev/null +++ b/soldatkinao/lab2/large.txt @@ -0,0 +1,100 @@ +#################################################################################################### +#S################################################################################################## +# ######## ############################### # ## ################################## ############## ## +# ################################## ############################### ########## +# ############################################################### +## ####### ###################### ####################################### ### ################### +##### ########## ################### ############ ######## ########### ############################# +##### ############################## ############ ################################################## +##### #################### ######### ################################### #### ###################### +##### ######################## ####################################### +####### ######################## ######## ###### ######################### ## ###################### +####### ##################### ######## ###### ################################## ################ +######## # ############## ##### ############## ################################################### +######## ## ############# ##### ############# ################# ################################## +######## ## ############ ###### ############# #################################### ################ +######## ### ### ####### #### ###### ################ ######################## +######## ### ## ############################# ########### ################################### ##### +######## #### ############################# ########### ######################################### +######## ############################ ########### ######################################### +######## ######## ############################ ######################## +####### ######## ############################ ############################ ####################### +####### ######### ########################## ############################# ####### +####### ########### ########### ########### ############################## ### ################# +####### #### ###### ## # ############################### #################### +####################### ################### #### ############# ############ ######### ######### +######################## # ########### #### ################################# ## ############# +################ ############ ######## ########## ####################### ############# +######## ########################### ##################### ###### ############# +############# ########### ############ ################# ######################### #### +##### ########## #################### ########### ######### ######################### ######## #### +##################################### ############# ######## ######## #### +######################## ############ ######################## ############################### ## +############################## #### ######################### ############ #### ### ########## ## +######## ########################## ########################### ### ### ################## ## +######################## ########## ############### ################### ## +########### ######## ## ##### ##### ################## #### ################# #### #### ######### ## +################################### ###### ############################# #### ################### ## +################################ ## ######################################### ######### ####### ### +################################### ######################################### ############### #### +##### #################### ######## ########################################### ############### #### +################ ################## ################ ### ###################### ######### ### #### +#### #### #################### ###### ####### ###################### ##### +################## ################################ ## ################### ###### ######## #### ## +###################################################### ########################## ###### ######### +############ ################### #################### ######################## ### ##### ######### +############################ ######################### ############################# ## ######### +################# #################################### ################################ ## ######### +###### ################### ############## ############ ################################ ####### +###################################################### ########################### ######### ###### +###################################################### ########## ########################### ## ## +###### ################################# ########### # ##################### ################# ##### +#### ############# ######################## ############## ### +#### ####### ####### ################ # ############# ################### ############ ######## ## +#### ########### ####################### ############# ########################################## # +#### ##### ############### ######## #### ########## ## ##################### ##################### # +#### ################################ # ######################################## # +#### ################################################# ######### #################### ########### # +##### ################################ ###### ####### ############################################ # +##### ####### ################### ############# ## ############################################### # +##### ############ ######################################### #################################### # +###### ########################################################## ###### ######################### # +###### ################## ############ ######### ############ ########## ######################### # +###### ######################### ##################### ########################################### # +###### ############################## ############################## ###### # +######## ################ ###### ######### ######################### ########## ################## # +######## ############# #################################################################### ### # +######## ################################# ############################## ################## ##### # +######## ################################################### ##################################### # +### #### #################### # # ################################################################ # +######## ### ####################################### ########################################## ## # +###### # ########################## ############## ################################ ########### # # +######### ############## ################## ########## # +##### ### ################################# ################################## ################### # +######## ########## #### ######### ######## ################### # +################## ####### ############### #### ####### ###### ####### ###### ################### # +############ # # #################### ##### ######################## ######### ################ # +##### ###### ####### ## ############## ## ########## #### ############### ##### ################ # +####### ###### ########## ################# ##################################### ################ # +############## ################# ################ #### ####### # +######################### ################# ####### ##################### ########### ############ # +##### ######## ########## ############### # ######### ################### ######################## # +######################### ################# ################ ########### ######################### # +###### ###################### ####################### # # +###### ### ### ################################ ####################### ######################### # +###### ######################################### ########### ########### ######################### # +### ## ######################################## ############### ####### ############### ######### # +####### ######## ######## ################### ## ######################### # +####### ###### ############################################## ############# #################### # # +####### ################# ############## ## ################# ######################### ########## # +####### ############################ ###### ################# ########################## ######### # +####### ########### ######## ########### ######### ################################### # +####### ######### ####################### ###################### ############ # +###################### ############# # ###### #################################### #### ######### # +###################################### ########################## ################################ # +##### ################################ ################## ######################################## # +########## ############### #### ######### ####### ####### # +########## ####### ################################################ ############################## # +########## # +##################################################################################################E# +#################################################################################################### diff --git a/soldatkinao/lab2/medium.txt b/soldatkinao/lab2/medium.txt new file mode 100644 index 0000000..3802000 --- /dev/null +++ b/soldatkinao/lab2/medium.txt @@ -0,0 +1,50 @@ +################################################## +#S ############################################### +## ############################################## +### ############################################## +### ############################################ +##### ############################################ +##### ## ############### ######################### +##### ############### ######################### +######## ############## ######################### +######### ####### ######################### +########## ########## #################### +############ ################ #################### +#### ################ #################### +############ ############### #################### +############# ########## +############# ########### ############ ########## +############ ############ ############ ########## +############# ############ ########### ########## +############# ################# ############ +############# ## # ######### ############# +################ ##### ## ############# +################ ####### ########## ############# +################ ######## ##### ######## +################ ######## ######### ############# +################ ######## ######### ############# +######################## ##################### +####################### ### #################### +###################### ##### ################### +##################### ####### ######### +############################### ################## +############################### ################## +######### ############### +####################### ######### ########### +####################### ############ # ########## +####################### ############### ########## +####################### ############### ######### +####################### ############### ####### +###################################### ## ####### +###################################### ### ### +###################################### ####### # +###################################### ######## # +################################################ # +################################################ # +################################################ # +################################################ # +##################################### # +################################################ # +################################################ # +################################################E# +################################################## diff --git a/soldatkinao/lab2/no_exit.txt b/soldatkinao/lab2/no_exit.txt new file mode 100644 index 0000000..54e8bea --- /dev/null +++ b/soldatkinao/lab2/no_exit.txt @@ -0,0 +1,6 @@ +####### +#S # +# ### # +# # # +### ### +#####E# \ No newline at end of file diff --git a/soldatkinao/lab2/results.csv b/soldatkinao/lab2/results.csv new file mode 100644 index 0000000..381ab67 --- /dev/null +++ b/soldatkinao/lab2/results.csv @@ -0,0 +1,16 @@ +maze,algo,time,visited,length,found +small.txt,BFS,0.10989999282173812,65.0,15,True +small.txt,DFS,0.065619993256405,65.0,31,True +small.txt,A*,0.14332000282593071,65.0,15,True +medium.txt,BFS,0.3859999938867986,254.0,95,True +medium.txt,DFS,0.33629999379627407,252.0,95,True +medium.txt,A*,0.413980009034276,179.0,95,True +large.txt,BFS,1.4565200021024793,950.0,313,True +large.txt,DFS,1.5662399993743747,1079.0,467,True +large.txt,A*,2.138140005990863,819.0,313,True +empty.txt,BFS,0.1598999951966107,102.0,102,True +empty.txt,DFS,0.13713999651372433,102.0,102,True +empty.txt,A*,0.20723999477922916,102.0,102,True +no_exit.txt,BFS,0.049780000699684024,12.0,0,False +no_exit.txt,DFS,0.04159999662078917,12.0,0,False +no_exit.txt,A*,0.06787999300286174,12.0,0,False diff --git a/soldatkinao/lab2/small.txt b/soldatkinao/lab2/small.txt new file mode 100644 index 0000000..f11ba38 --- /dev/null +++ b/soldatkinao/lab2/small.txt @@ -0,0 +1,10 @@ +########## +#S # +# # +# # +# # +# # +# # +# # +# # +#######E## \ No newline at end of file