如何使用Python创建一个数字猜测游戏?
你可能已经猜到了本文的内容。而且你可能已经熟悉了猜数字和想要用Python来构建它的方法。
让我们学习如何从头开始创建一个猜数字游戏。
猜数字游戏
这个游戏很简单。用户必须猜出在范围从1到100之间随机生成的数字。就这样。
这个游戏真的这么简单吗?
是的,就是这么简单。
但是,有一件事我们必须提供给用户来猜出数字。那就是提示。我们必须向用户提供一条消息,告诉他们当前猜测的数字比正确的数字小还是大。这样用户就会知道他们应该往哪个方向去。
通过添加额外的功能,比如最大猜测次数、增加范围、设置计时器等,我们可以让游戏变得更加有趣。
首先,我们必须创建基本的工作游戏。之后,我们可以添加更多讨论过的功能。因此,在本节中,我们将创建游戏的基本版本。然后我们将继续添加新功能。
我希望你在盲目复制代码之前尝试自己创建游戏。因此,我将先解释算法。这将帮助你自己编码或快速理解代码。
让我们看看创建猜数字游戏的算法。
算法
在进入编码部分之前,请确保你理解了算法。
- 定义数字范围。默认情况下是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 IDE和online compiler来运行Python代码。
快乐编程 🙂
如果你对病毒性文字游戏还不够满足,这里有一个how to do better at Wordle。