根据课本内容做了一个猜数字小游戏,麻烦各位给点建议
本帖最后由 kungfupd 于 2019-7-11 16:30 编辑自己花了点时间看了前4章节的内容,然后根据学到的只是自己重新做了猜数字小游戏,请各位帮我看看,哪里需要改进,谢谢!
number1=int(input('请输出“猜数字”游戏范围最高限值:'))
number5=1
n=number1//10
import random as r
number2=r.randint(number5,number1)
i=0
while i<n:
i +=1
number4=int(input('请输入你猜的数字:'))
if number4==number2:
if i<=n*0.8:
print('你太厉害了,如神一般')
print('你只猜了'+str(i)+'次就猜到了')
print('等等有惊喜')
break
else:
print('你太渣了!')
print('你居然猜了'+str(i)+'次才猜到了')
print('等等有惊喜')
break
elif number4<number2:
if number4<number1:
print('没有猜对,数字在'+str(number4)+'-'+str(number1)+'之间!')
number5=number4
else:
print('没有猜对,数字在'+str(number1)+'-'+str(number4)+'之间!')
number5=number4
elif number4>number2:
if number5<number4:
print('没有猜对,数字在'+str(number5)+'-'+str(number4)+'之间!')
number1=number4
else:
print('没有猜对,数字在'+str(number4)+'-'+str(number5)+'之间!')
number1=number4
continue
else:
print('你太蠢了,猪都比你聪明')
import time
money=(n-i+1)*10
time.sleep(1)
print('恭喜你获得'+str(money)+'点云积分')
time.sleep(3) {:10_245:} 看一下 那么你为什么要隐藏内容 既然让大家看,为啥非要回复才能看呢? 这个游戏一点都不好玩{:5_96:} 回复 6666666666666666666666 我最近也在学这个 学习学习 。。。 让大家看为什么要隐藏 看看
既然叫我们改进了,那为什么还要隐藏内容? 本帖最后由 一个账号 于 2019-7-26 21:43 编辑
我自己也编了一个:
from tkinter import *
import random
def check(content):
return content.isdigit()
def regulation(event=None):
root = Tk(className="规则")
test = "规则:输入一个1~1000的数字,如果用户输入的数字和计算机从1~1000之内的随机数相符,并且尝试次数要小于20次,则游戏胜利,否则游戏失败。"
Message(root, text=test, font=("微软雅黑", 12)).pack(padx=5, pady=5)
def exit(event=None):
root.destroy()
def num_guess():
if degree <= 5 :
l.config(text="5次以内就答对了!你的运气很高!")
elif degree <= 10:
l.config(text="10次以内就答对了,你的运气较高!")
elif degree <= 15:
l.config(text="15次以内就答对了,你的运气中等!")
elif degree <=20:
l.config(text="20次以内能答对,你的运气较低!")
else:
l.config(text="尝试次数超过20次,游戏结束!")
def yes(event=None):
global degree
error = False
try_number = var2.get()
if int(try_number) == number:
num_guess()
else:
if try_number == "":
l.config(text="提示:输入错误!", font=("微软雅黑", 12))
error = True
elif 0 > int(try_number) or int(try_number) > 1000:
l.config(text="提示:输入的数字必须介于1~1000!", font=("微软雅黑", 10))
guess.delete(0, END)
error = True
elif int(try_number) < number:
l.config(text="提示:您输入的数字小了!", font=("微软雅黑", 12))
var2.set("")
else:
l.config(text="提示:您输入的数字大了!", font=("微软雅黑", 12))
var2.set("")
if not error:
degree += 1
var.set("尝试次数:"+ str(degree))
def play():
global root
global var2
global number
global l
global degree
global var
global test
global guess
root = Tk(className="猜数字游戏")
test = root.register(check)
l = Label(root, text="", font=("微软雅黑", 10))
l.grid(row=1, column=0, sticky=W)
l.config(text="提示:请输入数字", font=("微软雅黑", 12))
number = random.randint(1, 1000)
degree = 0
var = StringVar()
var.set("尝试次数:"+str(degree))
Label(root, text="请输入一个1~1000之内的数字:", font=("微软雅黑", 11)).grid(row=0)
var2 = StringVar()
guess = Entry(root, textvariable=var2, width=20, validate="key", validatecommand=(test, "%P"))
guess.grid(row=0, column=1)
Label(root, textvariable=var, font=("微软雅黑", 11)).grid(row=1, column=1, sticky=E)
Button(root, text="确定", width=10, command=yes).grid(row=2, column=0, sticky=W, columnspan=2)
Button(root, text="规则", width=10, command=regulation).grid(row=2, column=1, columnspan=2)
Button(root, text="退出", width=10, command=exit).grid(row=2, column=3, sticky=E, columnspan=2)
guess.bind("<KeyPress-Return>", yes)
guess.focus_set()
if __name__ == "__main__":
play()
大家也帮我看看...... 我觉得你这个程序有点儿不切合实际,如果你猜1~10,如果第一次没猜中就完了,我觉得至少要给3次机会。 {:5_109:} 厉害 来 1
页:
[1]
2