我从这里的链接中为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
我在迷宫类中解决了一个迷宫,它使用广度优先搜索遍历迷宫,但我有一个测试用例,它要求迷宫返回方向的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中编写一个迷宫生成器:迷宫是由一个由整数组成的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 &
我正在做一个用递归方法解决迷宫的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
我正试图追踪帕克曼穿过迷宫的一条路。迷宫在列表中。我有一个(本质上)链表,是帕克曼在迷宫中走的路。当我在列表中循环时,我想将链接列表上的每个值都更改为一个'*'。经过一番研究后,我一直得到错误TypeError: 'str' object does not support item assignment。经过一番研究,我发现数组是不可变的,每次都要重写或追加数组。有什么简单的方法可以让我在python中做到这一点呢?
下面是我到目前为止掌握的代码:
while(pacman_r != originalR or pacman_c != originalC):
所以我有两个功能。一个生成一个随机迷宫(make_maze),另一个打开和关闭一个文件(MapFileMaker)。我想把迷宫插入文本文件。它只写前两行,我不知道如何去掉一个函数。
下面是代码当前的样子:
#random map
from random import shuffle, randrange
def make_maze(w = 10, h = 5):
vis = [[0] * w + [1] for _ in range(h)] + [[1] * (w + 1)]
ver = [[" "] * w + ['+']
在read_file方法中的代码中,我正在读取一个文件并返回包含迷宫行的2d数组。例如:[1 0 0 0 1 0 0 0,0 0 0 1 0 0 1 0 0 0]
2是迷宫的起点,3是迷宫的终点。
import numpy as np
class Maze:
@staticmethod
def read_file(file):
""" function that reads the file and returns the content of the file in an array """
#
我正在尝试写一个可以解决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
我有以下代码:
solve(maze){
let animateMaze = [];
function resolveMaze(maze){
let currentCell = maze.getNextUnsolveCell();
//already solved maze
if(currentCell===undefined) {
return true;
}
let availableValues = maz