我在迷宫类中解决了一个迷宫,它使用广度优先搜索遍历迷宫,但我有一个测试用例,它要求迷宫返回方向的char,并使用N S E W作为方向。我的问题是将移动转换为char,就像在最终返回时将北移(-1,0)转换为N。
注意:我是python的新手,所以解决这个迷宫是非常困难的。
def moves(self):
moves = list()
(r, c) = self.location
for (dr, dc) in [(-1, 0), (1, 0), (0, 1), (0, -1)]: # here is North, South, East, West
我从这里的链接中为python使用了迷宫生成器代码(也可以在下面看到):
我试图增加迷宫走廊的宽度,因为我正在把迷宫转换成一个高度图。然而,走廊太紧了,不适合我在迷宫中的性格。
我试图更改下面代码的一些设置,但是如果不让迷宫的行为怪异,我无法得到想要的结果。
def make_maze(w = 16, h = 8):
vis = [[0] * w + [1] for _ in range(h)] + [[1] * (w + 1)]
ver = [["| "] * w + ['|'] for _ in range(h)] + [[]]
h
我正在做一个用递归方法解决迷宫的Python项目。用户可以按照他们想要的顺序选择要检查的每个单元格的方向'NESW‘。为了简单起见,我编写了以下代码来说明我的问题。
def check(x, y, user_order):
<snip>
*assuming user_order is 'NESW'*
if check(x, y + 1) or check(x + 1, y) or check(x, y - 1) or check(x - 1, y):
return True
<snip>
如果存在路径,if
我试图在python中编写一个迷宫生成器:迷宫是由一个由整数组成的2D列表组成的:这个列表是用来表示这个迷宫在“我的世界”中的样子,所以每个单元实际上都位于x坐标和y坐标都是奇数的位置。
我编写的在“迷宫”类中修改单元格值的方法一直抛出ValueError: list.remove(x): x not in list异常。以下是代码:
def setCell(self, x, y, request):
query = Maze.blocks[(2*x)+1][(2*y)+1]
if 0 <= x < (Maze.length-1)/2 and 0 <= y &
我正在尝试写一个可以解决3D迷宫的Python脚本,我正在使用Dijkstra的算法和一个优先级队列(包含在模块heapq中)来完成这项工作。下面是我的主要函数代码:
from heapq import *
def dijkstra(start,end,vertices,obstacles):
covered=[]
s=vertices.index(s)
currentVertex=s
liveDistances={}
for i in range(len(vertices)):
liveDistances[i]=inf
live
我试图让我的程序在列表列表上重复一个操作,直到整个列表中没有零为止。我决定使用70个列表,每个列表90个0(这是用于迷宫生成器)。
x=int(input("How many columns?\n"))
y=int(input("How many rows?\n"))
maze=[[0]*x for n in range(y)]
因此,对于输入90和70,总共应该有6300个零。但是,当我使用
while 0 in maze[:]:
#stuff
...the循环立即结束,不做任何操作。我也试过
while 0 in maze:
#stuff
这