简单迷宫问题
迷宮實(shí)驗(yàn)是取自心理學(xué)的一個(gè)古典實(shí)驗(yàn)。在該實(shí)驗(yàn)中,把一只老鼠從一個(gè)無(wú)頂大盒子的門(mén)放入,在盒子中設(shè)置了許多墻,對(duì)行進(jìn)方向形成了多處阻擋。盒子僅有一個(gè)出口,在出口處放置一塊奶酪,吸引老鼠在迷宮中尋找道路以到達(dá)出口。對(duì)同一只老鼠重復(fù)進(jìn)行上述實(shí)驗(yàn),一直到老鼠從入口到出口,而不走錯(cuò)一步。老鼠經(jīng)過(guò)多次試驗(yàn)終于得到它學(xué)習(xí)走通迷宮的路線。設(shè)計(jì)一個(gè)計(jì)算機(jī)程序?qū)θ我庠O(shè)定的迷宮,求出一條從入口到出口的通路,或得出沒(méi)有通路的結(jié)論。
數(shù)組元素值為1表示該位置是墻壁,不能通行;元素值為0表示該位置是通路。假定從mg[1][1]出發(fā),出口位于mg[n][m]
用一種標(biāo)志在二維數(shù)組中標(biāo)出該條通路,并在屏幕上輸出二維數(shù)組。
m=[[1,1,1,0,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,1,1],[1,0,1,1,1,1,1,0,0,1],[1,0,1,0,0,0,0,1,0,1],[1,0,1,0,1,1,0,0,0,1],[1,0,0,1,1,0,1,0,1,1],[1,1,1,1,0,0,0,0,1,1],[1,0,0,0,0,1,1,1,0,0],[1,0,1,1,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1]] sta1=0;sta2=3;fsh1=7;fsh2=9;success=0 def LabyrinthRat():print('顯示迷宮:')for i in range(len(m)):print(m[i])print('入口:m[%d][%d]:出口:m[%d][%d]'%(sta1,sta2,fsh1,fsh2))if (visit(sta1,sta2))==0: print('沒(méi)有找到出口')else:print('顯示路徑:')for i in range(10):print(m[i]) def visit(i,j):m[i][j]=2global successif(i==fsh1)and(j==fsh2): success=1if(success!=1)and(m[i-1][j]==0): visit(i-1,j)if(success!=1)and(m[i+1][j]==0): visit(i+1,j)if(success!=1)and(m[i][j-1]==0): visit(i,j-1)if(success!=1)and(m[i][j+1]==0): visit(i,j+1)if success!=1: m[i][j]=3return success LabyrinthRat()?
總結(jié)
- 上一篇: 多校一道KMP+DP的题
- 下一篇: 数据结构课上笔记15