【发布时间】:2012-11-17 18:31:41
【问题描述】:
我正在尝试创建一个类似于蛇的游戏。不同之处在于通过使用 randint 获得食物配给,然后玩家将能够选择蛇应该向哪个方向生长,起始位置也是随机选择的。游戏场是用矩阵构建的,因此可以通过选择使列表超出范围的增长方向来“陷入困境”。
我的问题是,如果玩家选择以使列表超出范围的方式增长,是否可以创建一个 if 语句以“游戏结束”结束游戏,例如:
if IndexError: list index out of range :
print("Game over")
通过异常处理,我的代码将如下所示:
try :
if p == 0:
table[x][y] = "+"
elif p == 1:
table[x][y] = "+"
table[x][y+1] = "+"
elif p == 2:
table[x][y] = "+"
table[x][y+1] = "+"
table[x][y+2] = "+"
else:
table[x][y] = "+"
table[x][y+1] = "+"
table[x][y+2] = "+"
table[x][y+3] = "+"
except IndexError :
print ("Game Over")
但我收到错误“未缩进与任何外部缩进级别不匹配”
【问题讨论】:
-
那是因为你的代码没有正确缩进。
-
确保 try 和 except 语句的缩进相同,其中的所有 if/elif/else 具有相同的缩进,并且每个 if/elif 的所有内容/else state 具有相同的缩进。即使是一个空格也会搞砸一切!
-
哦!我不知道缩进是如此重要!非常感谢,现在好像可以使用了!
标签: python if-statement