kungfupd 发表于 2019-7-11 16:25:43

根据课本内容做了一个猜数字小游戏,麻烦各位给点建议

本帖最后由 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)

不知道叫啥好 发表于 2019-7-26 13:41:53

{:10_245:}

zltzlt 发表于 2019-7-26 14:07:43

看一下

白衫 发表于 2019-7-26 14:19:30

那么你为什么要隐藏内容

purpleiris 发表于 2019-7-26 15:21:36

既然让大家看,为啥非要回复才能看呢?

purpleiris 发表于 2019-7-26 15:25:05

这个游戏一点都不好玩{:5_96:}

逸夕1874 发表于 2019-7-26 15:46:42

回复

时刻 发表于 2019-7-26 16:06:36

6666666666666666666666

今天也要喝水鸭 发表于 2019-7-26 16:50:26

我最近也在学这个

Leivy 发表于 2019-7-26 17:25:58

学习学习

845212472 发表于 2019-7-26 17:35:06

。。。

踽踽_ 发表于 2019-7-26 18:06:59

让大家看为什么要隐藏

塔奇克马君 发表于 2019-7-26 18:52:04

看看

一个账号 发表于 2019-7-26 21:40:01

既然叫我们改进了,那为什么还要隐藏内容?

一个账号 发表于 2019-7-26 21:41:53

本帖最后由 一个账号 于 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()
大家也帮我看看......

一个账号 发表于 2019-7-26 21:50:39

我觉得你这个程序有点儿不切合实际,如果你猜1~10,如果第一次没猜中就完了,我觉得至少要给3次机会。

hejunze1314 发表于 2019-7-27 13:21:25

{:5_109:}

呵呵aust 发表于 2019-7-27 14:19:17

厉害

ykn大神6 发表于 2019-7-27 15:46:27

a850698824 发表于 2019-7-27 15:58:49

1
页: [1] 2
查看完整版本: 根据课本内容做了一个猜数字小游戏,麻烦各位给点建议