欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python深度優(yōu)先算法生成迷宮

 更新時(shí)間:2018年01月22日 10:33:19   作者:crystal_tyan  
這篇文章主要為大家詳細(xì)介紹了Python深度優(yōu)先算法生成迷宮,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Python深度優(yōu)先算法生成迷宮,供大家參考,具體內(nèi)容如下

import random 
 
#warning: x and y confusing 
 
sx = 10 
sy = 10 
dfs = [[0 for col in range(sx)] for row in range(sy)] 
maze = [[' ' for col in range(2*sx+1)] for row in range(2*sy+1)] 
#1:up 2:down 3:left 4:right 
operation = {1:(0,-1),2:(0,1),3:(-1,0),4:(1,0)} 
direction = [1, 2, 3, 4] 
stack = [] 
 
for i in range(2*sx+1): 
 if i%2 == 0: 
  for j in range(2*sx+1): 
   maze[i][j] = '#' 
for i in range(2*sy+1): 
 if i%2 == 0: 
  for j in range(2*sy+1): 
   maze[j][i] = '#' 
 
def show(graph): 
 for i in graph: 
  for j in i: 
   print j, 
  print 
 
def showRouter(stack): 
 RGragh = [[0 for col in range(sx)] for row in range(sy)] 
 for (x, y) in stack: 
  RGragh[y][x] = 1 
 show(RGragh) 
 print 
 
def generateMaze(start): 
 x, y = start 
 dfs[y][x] = 1 
 random.shuffle(direction) 
 for d in direction: 
  px, py = (x + y for x, y in zip(start, operation[d])) 
  if px < 0 or px >= sx or py < 0 or py >= sy: 
   pass 
  else: 
   if dfs[py][px] is not 1: 
    mx = 2*x + 1 
    my = 2*y + 1 
    if d == 1: 
     maze[my-1][mx] = ' ' 
    elif d == 2: 
     maze[my+1][mx] = ' ' 
    elif d == 3: 
     maze[my][mx-1] = ' ' 
    elif d == 4: 
     maze[my][mx+1] = ' ' 
    generateMaze((px,py)) 
 
generateMaze((0,0)) 
show(dfs) 
show(maze) 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用opencv中匹配點(diǎn)對(duì)的坐標(biāo)提取方式

    使用opencv中匹配點(diǎn)對(duì)的坐標(biāo)提取方式

    這篇文章主要介紹了使用opencv中匹配點(diǎn)對(duì)的坐標(biāo)提取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 查找適用于matplotlib的中文字體名稱與實(shí)際文件名對(duì)應(yīng)關(guān)系的方法

    查找適用于matplotlib的中文字體名稱與實(shí)際文件名對(duì)應(yīng)關(guān)系的方法

    這篇文章主要介紹了查找適用于matplotlib的中文字體名稱與實(shí)際文件名對(duì)應(yīng)關(guān)系的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn)

    PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn)

    這篇文章主要介紹了PyQT5 QTDesigner窗口及組成的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • linux中如何使用python3獲取ip地址

    linux中如何使用python3獲取ip地址

    這篇文章主要介紹了linux中如何使用python3獲取ip地址,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 關(guān)于Python連接Cassandra容器進(jìn)行查詢的問(wèn)題

    關(guān)于Python連接Cassandra容器進(jìn)行查詢的問(wèn)題

    這篇文章主要介紹了Python連接Cassandra容器進(jìn)行查詢的問(wèn)題,問(wèn)題的關(guān)鍵在于尋找到Cassandra的9042端口,從而獲取數(shù)據(jù),具有內(nèi)容詳情跟隨小編一起看看吧
    2021-11-11
  • python匹配兩個(gè)短語(yǔ)之間的字符實(shí)例

    python匹配兩個(gè)短語(yǔ)之間的字符實(shí)例

    今天小編就為大家分享一篇python匹配兩個(gè)短語(yǔ)之間的字符實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python如何為圖片添加水印

    Python如何為圖片添加水印

    這篇文章主要介紹了Python如何使用Python-Pillow庫(kù)給圖片添加水印的方法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-11-11
  • python使用reportlab生成pdf實(shí)例

    python使用reportlab生成pdf實(shí)例

    大家好,本篇文章主要講的是python使用reportlab生成pdf實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • 詳解python算法常用技巧與內(nèi)置庫(kù)

    詳解python算法常用技巧與內(nèi)置庫(kù)

    這篇文章主要介紹了python算法常用技巧與內(nèi)置庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python數(shù)據(jù)封裝json格式數(shù)據(jù)

    python數(shù)據(jù)封裝json格式數(shù)據(jù)

    本次內(nèi)容是小編在網(wǎng)上整理的關(guān)于如何python數(shù)據(jù)封裝json格式的內(nèi)容總結(jié),有興趣的讀者們參考下。
    2018-03-03

最新評(píng)論