我正在制作一个游戏而且棋盘是一个2D阵列,我有一个打印迷宫的程序,每次打印它都会显示一个' X'玩家站在哪里。问题是它保留了一个' X'球员站在哪里:
-1 X -1 -1
-1 2 3 -1
-1 -1 4 5
-1 6 7 -1
9 8 -1 a
b -1 -1 -1
c d -1 -1
-1 e f -1
1 -1 h g
2 X -1 -1
-1 X 3 -1
-1 -1 4 5
-1 6 7 -1
9 8 -1 a
b -1 -1 -1
c d -1 -1
-1 e f -1
1 -1 h g
当只有一个但我不知道为什么时,有两个X'
def printMaze(maze, x, y):
oldRoom = maze[y][x]
u = x - 1
v = y - 1
maze[v][u] = oldRoom
maze[y][x] = 'X'
for i in range(9):
for z in range(4):
print str(maze[i][z]).rjust(2),
print ''
答案 0 :(得分:0)
在您的示例中,您从(0,1)
移至(1,1)
,但将元素移至(1,1)
至(0,0)
。所以你必须给printMaze
新的和旧的职位。
def printMaze(maze, x, y, old_x, old_y):
maze[old_y][old_x] = maze[y][x]
maze[y][x] = 'X'
for row in maze:
for cell in row:
print cell,
print ''
答案 1 :(得分:0)
如果x和y是玩家的坐标,那么你要做的第一件事就是将oldRoom设置为等于玩家所在的位置。那不是X目前的地方吗?
为什么不检查您正在打印的当前位置是否是播放器的位置,而不是在迷宫阵列中的值之间移动,而是打印X?
def printMaze(maze, x, y):
for i in range(9):
for z in range(4):
if i == x and z == y:
print 'X',
else:
print maze[i][z],
print ''
答案 2 :(得分:-1)
问题是您必须存储“X”所在的最后一个pos,然后使用此最后一个pos来设置_
和u
变量。
v