内容如下:
①游戏可以重复进行,每当一个用户结束后,程序会提示是否还要继续,输入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("请输入一个1到100的整数")
print("游戏最高纪录%s"%name)
print("分数为:%d"%socre)
print("
注意:")
print(" 满分100分,每打错一次扣2分!")
print(" 输入的不是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("恭喜你,答对了!")
print("%s的分数是%d"%(name,achievement))
print("你猜数的次数是%d"%time)
if time==1:
print("你太优秀了!")
elif 1
print("你还算优秀了!")
elif 10
print("你还可以吧!")
else:
print("一般水平!")
string=str(achievement)+"
" #将成绩,姓名写入
with open("D:\new.txt","a") as file:
file.write(string)
string=name+"
"
with open("D:\new.txt","a") as file:
file.write(string)
break
else:
achievement-=2
if num
print("数的范围是%d到100"%num)
else:
print("数的范围是1到%d!"%num)
if achievement==0: #成绩为0时
print("对不起,你错了!")
print("%s的分数是%d"%(name,achievement))
print("你猜数的次数是%d"%time)
break
except: #输入非整数时
time+=1
achievement-=4
print("输入的不是整数,你要受到惩罚!")
if achievement==0:
print("对不起,你错了!")
print("%s的分数是%d"%(name,achievement))
print("你猜数的次数是%d"%time)
break
string=str(input("是否还要继续?(y,继续):")) #判断继续时是否为y
if string!="y":
temp=0