我试图制作一个简单的游戏(对于树莓派Sense HAT),这个代码块检查一个像素是否被阻挡,这样玩家就无法行走。
def whitelist(x,y):
for e in range(len(blacklist)):
item = blacklist[e]
cur_x = item[0]
cur_y = item[1]
if x == cur_x and y == cur_y:
return True
return False
这段代码产生了我想要的相反结果(我只能在地面内行走)。切换True
和False
行可以正常工作,但有人可以解释一下原因吗?使用不在黑名单中的坐标(0,5)
的代码在我看来并不像它应该正常工作,但确实如此。
答案 0 :(得分:1)
首先让我们更简单:
def whitelist(x,y):
for cur_x, cur_y in blacklist:
if x == cur_x and y == cur_y:
return True
return False
更简单:
(x, y) in blacklist
当且仅当(x,y)在黑名单中时才返回。