【まとめ】Pythonで迷路 プログラミング Twitter Facebook はてブ Pocket LINE コピー 2021.01.092023.07.07 これまでに書いた記事の中から、「Pythonで迷路」というテーマで書いた記事をまとめてみました。 【Python】迷路を出力する通路を「0」、壁を「1」とした2次元配列で迷路を表現して、通路を「 」(半角スペース)、壁を「#」として1行ごとに改行して出力する。 PATH = 0 WALL = 1 maze = [[1, 1, 1, 1, 1, 1, 1, 1, 1,... 【Python】壁のない迷路を生成する迷路の幅と高さをそれぞれ width, height として設定し、その数値にしたがって壁のない迷路を生成する。※迷路の幅と高さは5以上の奇数とする。 import sys class Maze: PATH = 0 WALL = 1 def... 【Python】迷路の外壁を設置する迷路の幅と高さをそれぞれ width, height として設定し、その数値にしたがって外壁を設置する。※迷路の幅と高さは5以上の奇数とする。 import sys class Maze: PATH = 0 WALL = 1 def __i... 【Python】迷路の内壁を等間隔に設置する迷路の幅と高さをそれぞれ width, height として設定し、その数値にしたがって上下左右1マス間隔で内壁を設置する。※迷路の幅と高さは5以上の奇数とする。 import sys class Maze: PATH = 0 WALL =... 【Python】棒倒し法で迷路を生成する迷路の幅と高さをそれぞれwidth,heightとして設定し、その数値にしたがって棒倒し法で迷路を生成する。※迷路の幅と高さは5以上の奇数とする。importsysimportrandomclassMaze:PATH=0WALL=1def_ 【Python】穴掘り法で迷路を生成する迷路の幅と高さをそれぞれwidth,heightとして設定し、その数値にしたがって穴掘り法で迷路を生成する。※迷路の幅と高さは5以上の奇数とする。importsysimportrandomfromcollectionsimportdeque 【Python】壁伸ばし法で迷路を生成する迷路の幅と高さをそれぞれwidth,heightとして設定し、その数値にしたがって壁伸ばし法で迷路を生成する。※迷路の幅と高さは5以上の奇数とする。importsysimportrandomfromcollectionsimportdequ 【Python】迷路のスタートとゴールを設定する迷路のスタートとゴールを座標によって設定し、スタートを「S」、ゴールを「G」として出力する。importsysimportrandomclassMaze:PATH=0WALL=1def__init__(self,width,height,s 【Python】迷路の最短経路を出力するスタートからゴールまでの距離を2次元配列で表現して、最短経路の通路を「」(半角スペース)から「*」に置き換えて出力する。importsysimportrandomclassMaze:PATH=0WALL=1def__init__(self, 【Python】幅優先探索で迷路の最短経路を求める探索していない通路を「-1」として表現してスタートからゴールに到達するまで幅優先探索で迷路を探索し、探索した通路はスタートからの距離に数値を置き換える。importsysimportrandomfromcollectionsimportde 【Python】深さ優先探索で迷路の最短経路を求める探索していない通路を「-1」として表現してスタートからゴールに到達するまで深さ優先探索で迷路を探索し、探索した通路はスタートからの距離に数値を置き換える。importsysimportrandomfromcollectionsimportd 【Python】迷路のスタートからの距離を出力するスタートからの距離と壁を距離の最大値の桁数に合わせて出力する。importsysimportrandomfromcollectionsimportdequeclassMaze:PATH=0WALL=1def__init__(self,wid 【Pygame】ウィンドウを表示するdisplay.set_modeメソッドでゲーム画面を描画するためのウィンドウを表示する。importpygamefrompygame.localsimport*importsysBLACK=(0,0,0)WHITE=(255,255,25 【Pygame】四角形を描画するdraw.rectメソッドでウィンドウに四角形を描画する。importpygamefrompygame.localsimport*importsysBLACK=(0,0,0)WHITE=(255,255,255)size=(640,480) 【Pygame】直線を描画するdraw.lineメソッドでウィンドウに直線を描画する。importpygamefrompygame.localsimport*importsysBLACK=(0,0,0)WHITE=(255,255,255)size=(640,480)w 【Pygame】楕円を描画するdraw.ellipseメソッドでウィンドウに楕円を描画する。importpygamefrompygame.localsimport*importsysBLACK=(0,0,0)WHITE=(255,255,255)size=(640,48 【Pygame】迷路を描画するウィンドウに迷路を描画する。main.pyimportpygamefrompygame.localsimport*importsysimportmazeBLACK=(0,0,0)WHITE=(255,255,255)size=(640,48 【Pygame】十字キーから入力を受け取る十字キーから入力を受け取り、迷路を移動できるようにする。main.pyimportpygamefrompygame.localsimport*importsysimportmazeBLACK=(0,0,0)WHITE=(255,255,25 【Pygame】クリア画面を表示するプレイヤーがゴールに到達したら「GameClear!!」を出力する。main.pyimportpygamefrompygame.localsimport*importsysimportmazeBLACK=(0,0,0)WHITE=(255, 【Blender】迷路を生成するScriptingタブから新規テキストデータブロックを作成し、以下のように編集する。importbpyimportsysimportrandomfromcollectionsimportdequeclassMaze():PATH=0WALL 【Blender】迷路に合わせて床の大きさを自動で調整するScriptingタブから新規テキストデータブロックを作成し、以下のように編集する。importbpyimportsysimportrandomfromcollectionsimportdequeclassMaze():PATH=0WALL