Python游戏编程 – 猜数字游戏
2023-12-21 16:36:30
Python游戏编程 – 猜数字游戏
Python Game Programming – Guessing Number Game
By Jackson@ML
对Python有一定了解,并且熟知变量、数据类型、循环与分支、函数功能后,我们可以尝试来编写简单的游戏代码。
本文简要介绍如何编写猜数字游戏的Python代码,以及运行的效果。希望对读者有所帮助。
1. 猜数字游戏原理
用户需要输入一个数字,用来猜测该数字是否为指定的或者被猜中的数字:
- 如果猜中,则输出“成功“字样,即用户获胜;
- 如果没猜中,程序回复用户”过高“或者”过低“(随比较结果而定)。
程序每次选择的数字应该不相同,否则游戏就会显得无趣,并耽误时间。此外,这个数字不应该轻易被猜中。
因此,产生一个随机数至关重要,它可以满足这种猜数字游戏的好奇心。
2. 游戏程序
上述的猜数字流程,看起来没有什么大的问题。现在,让我们开始写代码吧。
我们假定在1至50的范围猜测数字。由于是随机数,因此,需要引入Python的库random:
import random
接下来,写出按照预期要求的代码如下:
import random as rd
n = rd.randint(1, 50)
while True:
guess = int(input("Enter guess number:"))
if guess == n:
print("Success! You win.")
break
elif guess < n:
print("Too low! Try again.\n", end=" ")
else:
print("Too high! Try again.\n", end=" ")
执行结果如下图所示:
3. 改进版本的游戏程序
该游戏的确很好玩!
我们每次猜的时候,可以调整随机数范围,也可以做其它改进。尤其是对游戏本身的改进。
- 首先,应该在每次游戏结束前,有互动的机会,询问用户是否再玩一局;
- 其次,如果用户在任何回合中感觉无聊,或者着急退出,他们应该能够提早退出。有了这样的机制,游戏编程更加成熟。
经过思考,引入函数对功能进行打包,对代码改进如下:
import random as rd
def play_game():
n = rd.randint(1, 50)
while True:
guess = int(input("Enter guess number(0 to Exit):"))
if guess == 0:
print("Quitting the game...")
break
elif guess == n:
print("Success! You win.")
elif guess < n:
print("Too low! Try again.\n", end=" ")
else:
print("Too high! Try again.\n", end=" ")
while True:
play_game()
idea1 = input("You want to play again? (y/n): ")
if not idea1 or idea1[0] in 'Nn':
break
执行结果如下图所示:
我们看到有耐心玩游戏的话,猜数字猜了很多轮(如上图);那么,如果没耐心或者着急退出,则有以下结果:
现在,猜数字游戏看起来有点健壮了。
我们继续努力吧,寻找Python游戏世界的乐趣。😊
相关阅读:
- Python编程技巧 - 使用正则表达式
- Python编程技巧 - 单字符函数
- Python编程技巧 - 使用组合运算符
- Python编程技巧 - 异常处理
- Python编程技巧 - 迭代器(Iterator)
- Python编程技巧 - Lambda函数
- Python编程技巧 - 使用字典
- Python编程技巧 - 使用字符串(Strings)
- Python编程技巧 - 对象和类
- Python编程技巧 - 使用列表(Lists)
- Python编程技巧 - 转换二进制、八进制和十六进制的函数
- Python编程技巧 - 函数入门
- 安装Visual Studio Code来开发Python应用程序
- 安装2023最新版PyCharm来开发Python应用程序
- 2023最新版Python 3.12.0安装使用指南
- Python猜数字游戏代码报错的解决办法
文章来源:https://blog.csdn.net/jackson_lingua/article/details/135131903
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!