Python实现猜数游戏:支持循环游玩与本地成绩持久化
本文提供基于Python的猜数游戏完整实现,核心功能包括支持玩家重复游玩、记录玩家姓名及成绩至本地文件,并在程序启动时自动读取历史最高分。游戏设定1-100整数范围,采用扣分制(满分100,错误扣2分,非整数输入扣4分),通过异常处理确保输入合法性,最终实现成绩持久化与本地最高分展示。
Python猜数游戏功能概述
本文分享了一个使用Python编写的猜数游戏实例,旨在为读者提供具体的代码参考,详细内容如下。
具体功能实现如下:
游戏核心逻辑与持久化要求
① 游戏支持连续游玩模式。当一局游戏结束后,程序会询问用户是否继续;若输入字符“y”则开始新游戏,输入其他任意字符则退出程序; ② 引入玩家姓名输入环节,并将该玩家的最终成绩与姓名记录保存在名为“new.txt”的文件中; ③ 增加文件读取机制,确保每次程序启动时,首先读取“new.txt”文件内容,并展示之前玩家的最高成绩及对应姓名(若最高成绩数值相同,则优先显示最新的记录)。
代码实现与文件处理机制
import random
import os
if os.path.exists("D:\\new.txt")==False: #检测文件是否存在
file = open('D:\\' + 'new' + '.txt','w') #若不存在则立即创建
file.close()
temp=1 #控制是否继续
while temp:
work=random.randrange(1,101)
print(work)
with open("D:\\new.txt") as f: #读出最高纪录
name=""
socre=0
i=1 #奇为成绩,偶为姓名
for line in f:
if i%2!=0:
if socre <= int(line): #(最高成绩相同时,取最新成绩)
socre=int(line)
flag=1
else:
if temp==1:
name=line.rstrip()
flag=0
i+=1
achievement=100 #成绩初始为100
time=0 #次数初始为0
print("——————————猜数游戏——————————")
print("\t\t请输入一个1到100的整数")
print("\t\t游戏最高纪录%s"%name)
print("\t\t分数为:%d"%socre)
print("\n\t\t注意:")
print("\t\t 满分100分,每打错一次扣2分!")
print("\t\t 输入的不是1到100的整数,会有严厉惩罚!")
print()
name=str(input("请输入你的姓名:"))
while(achievement!=0):
try:
num=int(input("你猜测的数是:"))
time+=1
if (num<1 or num>100): #整数1,100以外的情况
print("超出范围了,你要受到惩罚!")
achievement-=4
else:
if num==work:
print("\t恭喜你,答对了!")
print("\t%s的分数是%d"%(name,achievement))
print("\t你猜数的次数是%d"%time)
if time==1:
print("\t你太优秀了!")
elif 1<time<11:
print("\t你还算优秀了!")
elif 10<time<21:
print("\t你还可以吧!")
else:
print("\t一般水平!")
string=str(achievement)+"\n" #将成绩,姓名写入
with open("D:\\new.txt","a") as file:
file.write(string)
string=name+"\n"
with open("D:\\new.txt","a") as file:
file.write(string)
break
else:
achievement-=2
if num<work:
print("数的范围是%d到100"%num)
else:
print("数的范围是1到%d!"%num)
if achievement==0: #成绩为0时
print("\t对不起,你错了!")
print("\t%s的分数是%d"%(name,achievement))
print("\t你猜数的次数是%d"%time)
break
except: #输入非整数时
time+=1
achievement-=4
print("输入的不是整数,你要受到惩罚!")
if achievement==0:
print("\t对不起,你错了!")
print("\t%s的分数是%d"%(name,achievement))
print("\t你猜数的次数是%d"%time)
break
string=str(input("是否还要继续?(y,继续):")) #判断继续时是否为y
if string!="y":
temp=0
如需了解更多Python游戏开发技巧,可查阅以下相关专题:
Python俄罗斯方块游戏合集
Python经典小游戏代码汇总
Python微信跳一跳游戏实现集合
以上内容为本文的全部分享,希望能为读者的学习提供有益帮助,同时也欢迎大家对本站给予更多支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













