创建一个刽子手游戏

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))

以上是关于创建一个刽子手游戏的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法从我的 Dialog 片段中的 Activity 调用方法?

C尖刽子手游戏+计数器

初学者的python刽子手代码

刽子手代码卡在三个不同的问题上

如何跟踪已经在 C++ 的刽子手游戏中猜到的字母?

刽子手游戏(UVa489)