我需要检查一块板上的相邻位置是否是“路径”

时间:2011-04-07 02:40:56

标签: python if-statement

我正在使用的函数依赖于函数mazesol.getBlock(board, x, y)。我需要检查电路板上的所有相邻位置(上,下,左,右)。我会这样写吗?

if mazesol.getBlock(board, ((x+1),(x-1)),((y+1),(y-1))) == 'path':

2 个答案:

答案 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':