我是python的新手,写了我的第二个游戏,因为我觉得这是学习一门新语言的最佳方式。我的代码如下:
守则:
ExtinctionCoeff
我想,当用户猜到我只想让字母X为红色时,正如关键所示。
当前输出:
请注意,只有“X”为红色且方括号为青色,这基本上是我想要在游戏中实现的。
理想输出:
问题:
如何按上述方式进行打印?
答案 0 :(得分:2)
问题代码是:
print colored(" ".join(row),"cyan")
你需要:
print ' '.join(colored(element, 'cyan') if element != 'X'
else colored(element, 'red')
for element in row)
修改强>
更一般地说,您可以根据角色查找颜色。一个常见的工具是使用Python dict
,它提供了键和值之间的映射。
>>> color_key = {
... 'X': 'red',
... 'H': 'magenta'}
>>> color_key['X']
'red'
如果您使用get
,则可以提供缺失密钥的默认值:
>>> color_key.get('[', 'cyan')
'cyan'
否则你会引发异常:
>>> color_key['[']
...KeyError...
用法:
print ' '.join(colored(element, color_key.get(element, 'cyan')
for element in row)
答案 1 :(得分:1)
您将要更新print_board方法。
def print_board(board):
for row in board:
print colored(" ".join(row),"cyan")
如果不编写您需要编写的确切代码,则需要将其更改为:
def print_board(board):
for row in board:
for each cell in the row:
if it is a W:
print it cyan
if it is an X:
print it in red
move to a new line now
通常在打印时会输入换行符,因此您需要退房 How to print without newline or space?