【发布时间】:2021-07-11 13:45:39
【问题描述】:
我正在创建一个战舰游戏,我有一个外观字典,其中船和坐标作为它们的值,它们都保存在一个主类中的 self.__dict 字典对象中。
{'battleship': ['A1', 'A2', 'A3', 'A4'], 'cruiser': ['E1', 'F1', 'G3'], 'destroyer': ['D5', 'D6'], 'submarine': ['I9']}
当条目不在船坐标中时,我的代码应该放在板上“*”,当它在坐标中时,应该放在“X”上。
由于某种原因,代码没有读取值中的镜头,而是打印未命中的“*”镜头。
changin_line 变量,是游戏板中插入的新行,包含标记。
x_index 变量,是指应放置标记的参考坐标。
shot = "A3"
if shot not in self.__dict.values():
changin_line.insert(x_index, "*")
else:
changin_line.insert(x_index, "X")
【问题讨论】:
-
self.__dict.values()是一个可迭代字符串列表。它只能包含列表字符串,不能包含字符串。 -
我之前在没有 .values() 的情况下拥有它,但它仍然不匹配它
-
values()不是问题。 -
巡洋舰是不是一分为二?在 E1、F1 和 G3 怎么可能?它应该在F2中间的对角线上吗?我承认我玩《战舰》已经快 50 年了,但我想我仍然记得基础知识。
-
G3 是个错误,应该是 G1,已修复,但与主要问题相比,这仍然是一个小问题:D
标签: python list dictionary conditional-statements