猜数字游戏所用的知识点:random.randint(),if/else/elif语句,while循环,open()。
这个代码只要懂得,if/else/elif语句,while循环,open()的语句,然后有一点基本的逻辑就可以做出来了,还是比较简单的,所以说比较适合新手练习。
代码:
#导入random库
import random
# 用print()函数在控制台打出游戏规则
print("游戏规则:系统随机给出一个1~10的数字,你有三次机会来猜,每次猜错会有提示。")
#等待命令开始游戏
input("\"按回车键继续\"")
jg=str("r")
#用while循环来保证程序可以一直运行
while jg==str("r"):
num = random.randint(1, 10)
#因为random取到的是int型,所以sr也要转化为int型
sr = int(input("我第一次猜:"))
#使用if、else、elif的判断语句来判断答案是否正确。
if sr == num:
print("恭喜你,第一次就猜中了!")
jg = input("\"按回车键退出,或输入r继续:\"")
else:
print("很遗憾,你猜错了")
dc = sr > num
if dc == True:
print("猜的太大了")
else:
print("猜的太小了")
sr = int(input("再来一次:"))
if sr == num:
print("恭喜你,你猜中了")
jg = input("\"按回车键退出,或输入r继续:\"")
else:
print("又猜错了")
dc = sr > num
if dc == True:
print("还是猜大了")
else:
print("还是猜小了")
sr = int(input("最后一次了:"))
if sr == num:
print("终于猜中了,太险了")
jg = input("\"按回车键退出,或输入r继续:\"")
else:
print("啊,又猜错了")
print("很可惜,你失败了")
print(f"答案是{num}")
score = 0
#使用输入的数据来判断是否进入下一次while循环
jg = input("\"按回车键退出,或输入r继续:\"")
再加入计分板与记录历史最高分的功能:
#导入random库
import random
score = 0
#如果是第一次启动,则创建记录最高分和当前分数的文档
f = open("score.txt","w",encoding="UTF-8")
f1 = open("score_max.txt","a",encoding="UTF-8")
f1.close()
#可以使用with open()来避免忘记关闭文件
#读取文档中的内容
f1 = open("score_max.txt","r",encoding="UTF-8")
#如果文档为空,那么设置初始值0
if f1.read() == "":
f1 = open("score_max.txt", "w", encoding="UTF-8")
f1.write("0")
f1.close()
# 用print()函数在控制台打出游戏规则
print("游戏规则:系统随机给出一个1~10的数字,你有三次机会来猜,每次猜错会有提示。")
#打印出历史最高分
f2 = open("score_max.txt","r",encoding="UTF-8")
sc = f2.read()
print(f"历史最高分数:{sc}")
f2.close()
#等待命令
input("\"按回车键继续\"")
jg=str("r")
#用while循环来保证程序可以一直运行
while jg==str("r"):
score = score
num = random.randint(1, 10)
#因为random取到的是int型,所以sr也要转化为int型
sr = int(input("我第一次猜:"))
#使用if、else、elif的判断语句来判断答案是否正确。
if sr == num:
print("恭喜你,第一次就猜中了!")
score += 1
print(f"您的分数为:{score}")
jg = input("\"按回车键退出,或输入r继续:\"")
else:
print("很遗憾,你猜错了")
dc = sr > num
if dc == True:
print("猜的太大了")
else:
print("猜的太小了")
sr = int(input("再来一次:"))
if sr == num:
print("恭喜你,你猜中了")
score += 1
print(f"您的分数为:{score}")
jg = input("\"按回车键退出,或输入r继续:\"")
else:
print("又猜错了")
dc = sr > num
if dc == True:
print("还是猜大了")
else:
print("还是猜小了")
sr = int(input("最后一次了:"))
if sr == num:
print("终于猜中了,太险了")
score += 1
print(f"您的分数为:{score}")
jg = input("\"按回车键退出,或输入r继续:\"")
else:
print("啊,又猜错了")
print("很可惜,你失败了")
print(f"答案是{num}")
score = 0
#使用输入的数据来判断是否进入下一次while循环
jg = input("\"按回车键退出,或输入r继续:\"")
mf1 = open("score_max.txt", "r", encoding="UTF-8")
max = mf1.read()
#如果当前分数大于历史最高分,那么将当前分数代替它
if int(score) > int(max):
mf1.close()
mf1 = open("score_max.txt", "w", encoding="UTF-8")
mf1.write(str(score))
mf1.close()
完成