创建一个刽子手游戏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建一个刽子手游戏相关的知识,希望对你有一定的参考价值。
我正在创建一个挂机游戏,遇到了一个问题,我似乎无法解决。以下是我的正确字母输入代码。
for i, l in enumerate(answer):
if l == attempt:
temp += attempt
else:
temp += hidden[i]
print(F"Correct! You have {lives} lives left")
print(temp)
返回: (答案是duplex)
duplex
Guess a letter: x
Correct! You have 5 lives left
-----x
然而,当添加第二个输入时,它打印的是第二个连接的字符串,而不是一个更新的字符串。
Guess a letter: e
Correct! You have 5 lives left
-----x----e-
Guess a letter:
我到底哪里做错了?谢谢!我正在创建一个刽子手游戏,遇到了一个问题,我似乎无法解决。
答案
问题出在hidden上,在你发布的代码中,并没有把用户的输入添加到这个数组中。所以hidden是永远不会改变的。试试 hidden[i]=attempt
在正确的尝试范围内。它应该是这样的。
for i, l in enumerate(answer):
if l == attempt:
temp += attempt
hidden[i]=attempt
else:
temp += hidden[i]
print(F"Correct! You have {lives} lives left")
print(temp)
在python中,string有一个函数find,它可以返回一个字符串中子串的索引。它可以让你的代码更干净。
index = answer.find(attempt,0)
if(index>0):
hidden[index] = attempt
print(hidden)
另一答案
而不是不断地追加到 temp
字符串,我认为你要在猜测时替换其中的具体字母。 我还建议给它取一个更好的名字,而非 temp
!
visible = ["-"] * len(answer)
# now for each attempt, do:
if attempt in answer and attempt not in visible:
print(f"Correct! You have {lives} lives left")
for i, l in enumerate(answer):
if l == attempt:
visible[i] = attempt
print("".join(visible))
以上是关于创建一个刽子手游戏的主要内容,如果未能解决你的问题,请参考以下文章