我的任务是创建一个带有2D数组的迷宫。我被告知需要实现Union-Find算法来生成任意大小的迷宫。然后我需要打破每一道墙,直到每一个单元都可以到达。
int[][] matrix = new int[N][M];
单元格是单独的数组索引,但是墙是什么呢?我正在考虑用4个方向的构造器来创建自己的数据类型的迷宫,例如
Maze maze = new Maze() //fill in constructor as needed
数组的值是从0到9,我可以用什么来表示墙?
Code Golf:旋转迷宫
编写一个接受由迷宫组成的文件的程序。迷宫的墙壁是由#提供的。迷宫必须包括由o给出的单个球和由@给出的任意数量的洞。迷宫文件可以通过命令行输入,也可以通过标准输入作为行读取。请指定解决方案中的哪一个。
然后,您的程序将执行以下操作:
1: If the ball is not directly above a wall, drop it down to the nearest wall.
2: If the ball passes through a hole during step 1, remove the ball.
3: Display the maze
几乎可以肯定的是,在这里,我是哑巴-我正在实验蟒蛇迷宫解决者,一直在寻找各种方法如何工作,但被困在格式的实际迷宫文本文件。我为加载和显示迷宫而借用的代码如下
def loadMaze():
readIt = open('Maze2.txt', 'r')
readLines = readIt.readlines()
global mazeList
mazeList = [list(i.strip()) for i in readLines]
def showMaze():
for i in mazeList:
我正在尝试将迷宫数据结构转换为图形。迷宫就像一个网格和细胞之间的一些墙。
maze[8][8][4] is how the maze is represented.
If maze[i][j][0] = 1 it means you can't go up from (i,j)
if maze[i][j][1] = 1 it means you can't go down from (i,j)
// and so on
我想把这个迷宫转换成图形,我该怎么做呢?
我编写了一个递归解决迷宫的程序。它打开一个包含迷宫的文本文件,将其转换为列表,然后尝试递归地解决它。下面是解决这个迷宫的部分:
def search(x,y, mazeList):
# returns True if it has found end of maze
if mazeList[x][y] == 'E':
return True
# returns False if it encounters a wall
elif mazeList[x][y] == '-':
return False
我在做一个迷宫游戏。角色不能穿过迷宫的墙壁(因为来自角色的位图数据和来自墙壁的bmd之间的碰撞检测)。当角色到达一扇门时,下一关卡/框架应该出现一个新的迷宫(新边界)。
对于下一关(下一帧),我用不同的墙做了一个新的迷宫。但是来自第一个迷宫的位图数据仍然是“活动的”。因此,即使有一个新的迷宫,来自以前墙壁的位图数据是看不见的,但仍然绘制在舞台上。
我的问题是:我想改变每一帧的边界/迷宫,我如何删除之前的位图数据,这样角色就不会穿过下一个迷宫的边界?或者有没有可能从不同的“边界”生成一个数组?
stop();
var isRight:Boolean=false;
var isLeft:B