我正在使用的函数依赖于函数mazesol.getBlock(board, x, y)
。我需要检查电路板上的所有相邻位置(上,下,左,右)。我会这样写吗?
if mazesol.getBlock(board, ((x+1),(x-1)),((y+1),(y-1))) == 'path':
答案 0 :(得分:0)
看起来您想要检查当前x,y位置的每个相邻图块。为什么不首先列举所有这些可能性,以便它对您更具可读性:
//pseudo code...
up =mazesol.getBlock(board, x, y + 1);
down = mazesol.getBlock(x, y - 1);
left = mazesol.getBlock(x - 1, y);
right = mazesol.getBlock(x + 1, y);
并且做:
if (left == 'path')
//do whatever for left
else if (left == 'path)
//do whatever for right
.
.
.
答案 1 :(得分:0)
从您的功能定义我认为您需要这样做:
# Check left
if mazesol.getBlock(board, x+1,y) == 'path':
# do the same for (x-1, y), (x, y+1), (x, y-1)
你会想要小心边缘情况,但是如果你的getBlock方法没有检查你是否在董事会的范围内,你将不得不检查每个案例。
即
if x > 0 and mazesol.getBlock(board, x-1,y) == 'path':