159662-会稽 发表于 2022-7-3 18:43:59

EasyGui猜数字升级版(待改进)

用EasyGui写的猜数字,仿老污龟语句,猜数字测试版,一些有待修改的问题写在代码结尾,大家可以一起讨论怎么修改{:10_254:}
import easygui as e#引用模块
import random as r

def start():
    e.msgbox('欢迎来到猜数字小油戏','开始')#游戏开始的提示

def ARandomNum(end):#一个用于生成随机数的函数,参数end表示生成0~end之间的数字
    num = r.randint(0,end)
    return num

def ChoiceAMod(i):#难度选择函数,参数i没有用
    choices = ['地狱','困难','普通','E Z']
    choice = e.choicebox('请选择难度','选难度',choices)#选择消息框
    if choice == '地狱':#根据上面返回的choice值决定ends的值
      ends = 10000
    elif choice == '困难':
      ends = 1000
    elif choice == '普通':
      ends = 100
    elif choice == 'E Z':
      ends = 10
      e.msgbox('太拉了吧,选个EZ?')#浅浅的嘲讽一下
    return ends
def game(i = True):#游戏主体
    while i:#这里的i用于判断若用户在下面选择了取消,则i = False 则退出游戏
      ends = ChoiceAMod(i)#返回ends得值
      num = ARandomNum(ends)#根据ends的值大小决定num的范围
      frequency = 0#frequency意为次数,用于记录用户输入了几次
      while i:#同理
            frequencyChar = ['猜了',frequency,'次']#由于函数不能用‘,’输出所以这里用列表来表示输入了几次
            answer = int(e.passwordbox('输入你心中所想',frequencyChar))
            frequency +=1#每输入一次frequency自加一
            if(num > answer):#判断大小,无他
                e.msgbox('切,这么小~','小了小了~')               
            elif(num < answer):
                e.msgbox('啊!不要,太大了','大了大了!')
            else:
                frequencyChar = ['恭喜你,猜了',frequency,'次终于通关']
                i = e.boolbox('你猜对了!你要在玩一遍吗?',frequencyChar,('好,今个儿就给你办的彻彻底底','不了不了,已经一点也不剩了(指时间)'))
            
start()
game()
#但是这个游戏有待改进,所以我征求大家的意见
#有以下问题
#1.当用户选择在玩一遍,无法重新选择难度 并且 生成一个新的随机数
#2.当用户在answer = int(e.passwordbox('输入你心中所想',frequencyChar))语句时什么都不输入或输入英文字母则程序会报错崩溃
#3.重玩时计数器无法归0
   
页: [1]
查看完整版本: EasyGui猜数字升级版(待改进)