如何使用Python创建一个数字猜测游戏?

你可能已经猜到了本文的内容。而且你可能已经熟悉了猜数字和想要用Python来构建它的方法。

让我们学习如何从头开始创建一个猜数字游戏。

猜数字游戏

这个游戏很简单。用户必须猜出在范围从1100之间随机生成的数字。就这样。

这个游戏真的这么简单吗?

是的,就是这么简单。

但是,有一件事我们必须提供给用户来猜出数字。那就是提示。我们必须向用户提供一条消息,告诉他们当前猜测的数字比正确的数字小还是大。这样用户就会知道他们应该往哪个方向去。

通过添加额外的功能,比如最大猜测次数、增加范围、设置计时器等,我们可以让游戏变得更加有趣。

首先,我们必须创建基本的工作游戏。之后,我们可以添加更多讨论过的功能。因此,在本节中,我们将创建游戏的基本版本。然后我们将继续添加新功能。

我希望你在盲目复制代码之前尝试自己创建游戏。因此,我将先解释算法。这将帮助你自己编码或快速理解代码。

让我们看看创建猜数字游戏的算法。

算法

在进入编码部分之前,请确保你理解了算法。

  • 定义数字范围。默认情况下是1-100,但你可以根据自己的喜好进行更改。
  • 从上述范围(1-100)生成一个随机整数。
  • 通过向用户显示一条消息的方式开始游戏,该消息为“从X到Y猜数字”。你可以根据需要更新消息。
  • 初始化一个变量为0,用于计算用户猜测数字的总次数。
  • 编写一个无限循环。
    • 要求用户猜数字。
    • 如果当前猜测的数字等于随机生成的数字,则用你喜欢的方式恭喜用户。一个示例可以是“-> 哇!你用了5步猜出来了!”
    • 在向用户表示祝贺后,跳出循环。
    • 如果当前猜测的数字小于随机生成的数字,则向用户给出消息,例如“-> 你的数字小于随机数”或具有相同含义的自定义消息。
    • 如果当前猜测的数字大于随机生成的数字,则向用户给出消息,例如“-> 你的数字大于随机数”或具有相同含义的自定义消息。
    • 最后,增加用户猜测次数的计数。

    在看完算法后,你可能会在脑海中想出代码。即使你没有得到完整的代码也不用担心。但是,请确保你理解了以上算法。

    现在是时候开始动手编码了。不要再拖延了。

    代码

    你尝试编写代码了吗?

    如果是的,并且已经完成了。那太好了。看看代码并理解它,以便将更多观点加入你的知识。

    如果你没有编写代码也不用担心。看一下下面的代码并理解它。尝试调整并用自己的方式编写它以更好地理解。

    那么,让我们看看代码。

    import random
    
    
    class NumberGuessingGame:
    
        def __init__(self):
            ## 定义范围
            self.LOWER = 1
            self.HIGHER = 100
    
        ## 生成随机数的方法
        def get_random_number(self):
            return random.randint(self.LOWER, self.HIGHER)
    
        ## 游戏开始方法
        def start(self):
            ## 生成随机数
            random_number = self.get_random_number()
    
            print(
                f"猜测从{self.LOWER}到{self.HIGHER}之间的随机生成的数字")
    
            ## 游戏的核心
            chances = 0
            while True:
                user_number = int(input("输入猜测的数字:"))
                if user_number == random_number:
                    print(
                        f"-> 哇!您用了{chances + 1}步{'s' if chances > 1 else ''}猜中了!")
                    break
                elif user_number  您的数字小于随机数")
                else:
                    print("-> 您的数字大于随机数")
                chances += 1
    
    ## 实例化并开始游戏
    numberGuessingGame = NumberGuessingGame()
    numberGuessingGame.start()
    

    从代码中可以得出以下一些要点。

    • 范围在__init__方法中定义,以便在整个类方法中使用。
    • 我们可以在一个地方轻松更改它,从而在整个应用程序中进行相应更改。
    • 有一个单独的方法来生成随机数,遵循“分离关注点”的原则。在这里,我们的方法代码很少,但是它可能在未来增加。
    • 最后,我们使用类,以便与游戏相关的每个方法都将驻留在其中。它可以很容易地在其他应用程序中重用。

    所有上述讨论的要点都与编写清晰的代码相关。我们应该尽量编写您在 X 年后仍然能够理解的清晰的代码。

    游戏的示例输出如下所示。

    $ python number_guessing_game.py 
    猜测从1到100之间的随机生成的数字
    输入猜测的数字:50
    -> 您的数字小于随机数
    输入猜测的数字:75
    -> 您的数字小于随机数
    输入猜测的数字:90
    -> 您的数字大于随机数
    输入猜测的数字:85
    -> 您的数字大于随机数
    输入猜测的数字:80
    -> 哇!您用了5步猜中了!

    我假设您已经尝试了上面的代码。

    额外功能

    我们将添加用户猜测数字的最大次数。如果用户在给定的次数内无法猜测到数字,则用户失败。

    我们如何添加呢?

    这是一个简单的两步过程。让我们看看这两步。

    • 定义用户猜测数字的最大次数。
    • 在要求输入之前,检查用户是否有机会,并在用户用完给定的次数后结束游戏。

    以下附加代码将完成此功能。

    • 将以下代码添加到__init__方法中。
    self.MAX_CHANCES = 10
    • 在用户输入下一个猜测之前添加以下条件。
    if chances == self.MAX_CHANCES:
                    print("-> 啊呀!您输掉了游戏。您没有机会了")

    现在,在没有猜到正确数字的情况下尝试游戏。您应该看到类似以下的输出。

    $ python number_guessing_game.py 
    猜测随机生成的1到100之间的数字。您有10次机会猜测。
    输入猜测的数字:1
    -> 您的数字小于随机数字
    输入猜测的数字:2
    -> 您的数字小于随机数字
    输入猜测的数字:3
    -> 您的数字小于随机数字
    输入猜测的数字:4
    -> 您的数字小于随机数字
    输入猜测的数字:5
    -> 您的数字小于随机数字
    输入猜测的数字:6
    -> 您的数字小于随机数字
    输入猜测的数字:7
    -> 您的数字小于随机数字
    输入猜测的数字:8
    -> 您的数字小于随机数字
    输入猜测的数字:9
    -> 您的数字小于随机数字
    输入猜测的数字:10
    -> 您的数字小于随机数字
    -> 哎呀!你输掉了游戏。你没有机会了

    哈喽!我们为我们的游戏增加了一个额外的功能。虽然这并不是结束。你可以添加一些更有趣的功能,使它更吸引用户。现在轮到你了。继续并使它更漂亮 :).

    结论

    我们创建了一个简单的数字猜测游戏。现在,轮到你回想起小时候玩的游戏。使用programming language制作并与朋友分享。我们可以将我们的大部分童年游戏数字化。

    接下来,探索Python IDEonline compiler来运行Python代码。

    快乐编程 🙂

    如果你对病毒性文字游戏还不够满足,这里有一个how to do better at Wordle

类似文章