Python实战:90行代码实现猜数字游戏
本文通过90行Python代码演示了一个完整的猜数字游戏开发过程。内容涵盖用户注册、基于年龄的金币分配机制、随机数生成与判断逻辑、以及道具购买模块。文章详细解析了输入验证、异常处理及游戏状态流转,适合Python初学者理解基础语法与逻辑控制结构。
导入必要的库文件。
import random import time
执行用户注册流程。
利用变量存储与input函数获取用户输入。
name = str(input('请输入用户名:'))
print('欢迎您,'+name)
处理用户注册时的年龄信息。
使用异常处理机制,确保非法文本输入时游戏直接结束。
若输入非法文本,则终止游戏运行。
try:
age = int(input('请输入年龄:'))
except ValueError:
print('非法输入')
age = 30000
将年龄上限设定为30000以兼容极端输入。
根据用户输入的年龄数值,计算并分配初始金币数量。
执行金币分配逻辑。
if age <10:
gold = 500
print('您的初始金币为500')
if age <20 and age >10:
gold = 1000
print('您的初始金币为1000')
if age >20 and age <30:
gold = 1500
print('您的初始金币为1500')
if age >30 and age <1000:
gold = 200
print('年龄过大,您的初始金币为200')
通过if语句确保金币数值小于10000;若金币达到10000,则判定游戏结束。
执行第一层if条件判断。
if gold !=10000:
Game_start = str(input('是否开始游戏?(True或False)'))
while gold !=10000:
进入游戏核心逻辑部分,需仔细关注实现细节。
利用if语句检查Game_start变量是否为True,并初始化一个随机数列表。
结合if语句与随机数生成逻辑。
if Game_start =='True': list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),] while list_123 ==10: list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]
定义回答变量,并预设正确答案与错误答案的对应关系。
处理用户回答、正确结果与错误结果的判定。
answer = str(input('请猜数(big或small):'))
if list_123[0] + list_123[1] + list_123[2] >10:
result = 'big'
error_result = 'small'
if list_123[0] + list_123[1] + list_123[2] <10:
result = 'small'
error_result = 'big'
利用if语句区分用户回答是正确、错误还是非法输入。
执行第二层if条件判断。
if answer ==result:
print('您赢了!')
gold = gold + 100
print('随机数为'+str(list_123))
print('您现在有'+str(gold)+'金币')
elif answer ==error_result:
print('您输了...')
print('随机数为'+str(list_123))
gold = gold - 100
print('您现在有'+str(gold)+'金币')
else:
print('非法输入')
gold = 10000
构建购买游戏道具的功能模块。
由于代码篇幅较长,此处省略逐行解析。
实现道具购买功能。
if gold ==2000 or gold ==3000 or gold ==4000 or gold ==5000 or gold ==6000 or gold ==7000 or gold ==8000 or gold ==9000:
answer = str(input('您现在可以购买道具,是否购买?(True或False):'))
if answer =='True':
print('请说出要购买der道具')
print('*'*41)
print('*金币翻倍器[现有的] 金币翻倍器[得到的]*')
print('* 2000G 1500G *')
print('*'*41)
answer = str(input('请说出要购买der道具(金币翻倍器[现有的]说1,金币翻倍器[得到的]说2):'))
if gold >2000 and answer =='1':
gold = gold - 2000
answer = int(input('请说出要翻der倍数:'))
gold = str(gold * answer)
print('您现在有'+gold+'金币')
gold = int(gold)
elif gold >1500 and answer =='2':
gold = gold - 1500
answer = int(input('请说出要翻der倍数:'))
gold_mang = 100 * answer
gold = gold + gold_mang
print('您现在有'+str(gold)+'金币')
gold = int(gold)
else:
print('没有这个道具,游戏结束')
gold = 10000
elif answer =='False':
print('继续游戏')
else:
print('非法输入')
gold = 10000
在编写过程中发现需将前述逻辑进行衔接,现补充相关代码。
完成逻辑衔接部分。
import random
import time
name = str(input('请输入用户名:'))
print('欢迎您,'+name)
try:
age = int(input('请输入年龄:'))
except ValueError:
print('非法输入')
age = 30000
gold = 10000
if age <10:
gold = 500
print('您的初始金币为500')
if age <20 and age >10:
gold = 1000
print('您的初始金币为1000')
if age >20 and age <30:
gold = 1500
print('您的初始金币为1500')
if age >30 and age <1000:
gold = 200
print('年龄过大,您的初始金币为200')
if gold !=10000:
Game_start = str(input('是否开始游戏?(True或False)'))
while gold !=10000:
if Game_start =='True':
list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]
while list_123 ==10:
list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]
answer = str(input('请猜数(big或small):'))
if list_123[0] + list_123[1] + list_123[2] >10:
result = 'big'
error_result = 'small'
if list_123[0] + list_123[1] + list_123[2] <10:
result = 'small'
error_result = 'big'
if answer ==result:
print('您赢了!')
gold = gold + 100
print('随机数为'+str(list_123))
print('您现在有'+str(gold)+'金币')
elif answer ==error_result:
print('您输了...')
print('随机数为'+str(list_123))
gold = gold - 100
print('您现在有'+str(gold)+'金币')
else:
print('非法输入')
gold = 10000
if gold ==2000 or gold ==3000 or gold ==4000 or gold ==5000 or gold ==6000 or gold ==7000 or gold ==8000 or gold ==9000:
answer = str(input('您现在可以购买道具,是否购买?(True或False):'))
if answer =='True':
print('请说出要购买der道具')
print('*'*41)
print('*金币翻倍器[现有的] 金币翻倍器[得到的]*')
print('* 2000G 1500G *')
print('*'*41)
answer = str(input('请说出要购买der道具(金币翻倍器[现有的]说1,金币翻倍器[得到的]说2):'))
if gold >2000 and answer =='1':
gold = gold - 2000
answer = int(input('请说出要翻der倍数:'))
gold = str(gold * answer)
print('您现在有'+gold+'金币')
gold = int(gold)
elif gold >1500 and answer =='2':
gold = gold - 1500
answer = int(input('请说出要翻der倍数:'))
gold_mang = 100 * answer
gold = gold + gold_mang
print('您现在有'+str(gold)+'金币')
gold = int(gold)
else:
print('没有这个道具,游戏结束')
gold = 10000
elif answer =='False':
print('继续游戏')
else:
print('非法输入')
gold = 10000
至此游戏主体功能已基本完成,若仅关注运行结果可跳过后续细节,但完整代码可能存在部分未处理的边界情况。
剩余代码篇幅较长,此处直接展示完整代码实现。
展示完整的源代码。
import random
import time
name = str(input('请输入用户名:'))
print('欢迎您,'+name)
try:
age = int(input('请输入年龄:'))
except ValueError:
print('非法输入')
age = 30000
gold = 10000
if age <10:
gold = 500
print('您的初始金币为500')
if age <20 and age >10:
gold = 1000
print('您的初始金币为1000')
if age >20 and age <30:
gold = 1500
print('您的初始金币为1500')
if age >30 and age <1000:
gold = 200
print('年龄过大,您的初始金币为200')
if gold !=10000:
Game_start = str(input('是否开始游戏?(True或False)'))
while gold !=10000:
if Game_start =='True':
list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]
while list_123 ==10:
list_123 = [random.randint(1,6),random.randint(1,6),random.randint(1,6),]
answer = str(input('请猜数(big或small):'))
if list_123[0] + list_123[1] + list_123[2] >10:
result = 'big'
error_result = 'small'
if list_123[0] + list_123[1] + list_123[2] <10:
result = 'small'
error_result = 'big'
if answer ==result:
print('您赢了!')
gold = gold + 100
print('随机数为'+str(list_123))
print('您现在有'+str(gold)+'金币')
elif answer ==error_result:
print('您输了...')
print('随机数为'+str(list_123))
gold = gold - 100
print('您现在有'+str(gold)+'金币')
else:
print('非法输入')
gold = 10000
if gold ==2000 or gold ==3000 or gold ==4000 or gold ==5000 or gold ==6000 or gold ==7000 or gold ==8000 or gold ==9000:
answer = str(input('您现在可以购买道具,是否购买?(True或False):'))
if answer =='True':
print('请说出要购买der道具')
print('*'*41)
print('*金币翻倍器[现有的] 金币翻倍器[得到的]*')
print('* 2000G 1500G *')
print('*'*41)
answer = str(input('请说出要购买der道具(金币翻倍器[现有的]说1,金币翻倍器[得到的]说2):'))
if gold >2000 and answer =='1':
gold = gold - 2000
answer = int(input('请说出要翻der倍数:'))
gold = str(gold * answer)
print('您现在有'+gold+'金币')
gold = int(gold)
elif gold >1500 and answer =='2':
gold = gold - 1500
answer = int(input('请说出要翻der倍数:'))
gold_mang = 100 * answer
gold = gold + gold_mang
print('您现在有'+str(gold)+'金币')
gold = int(gold)
else:
print('没有这个道具,游戏结束')
gold = 10000
elif answer =='False':
print('继续游戏')
else:
print('非法输入')
gold = 10000
if gold ==0:
print('金币没了,游戏结束')
gold = 10000
elif Game_start =='False':
print('欢迎游玩,下次再见!')
gold = 10000
else:
print('非法输入')
gold = 10000
print('游戏结束,再见!')
time.sleep(10)
关于Python实战中90行代码实现猜数字游戏的介绍至此结束,更多Python相关内容可搜索本站历史文章或浏览后续教程,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









