鱼C论坛

 找回密码
 立即注册
查看: 1301|回复: 2

[已解决]我用EasyGui写的猜数字升级版,但是它报错说局部变量未定义

[复制链接]
发表于 2022-7-2 21:50:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
话不多说上代码
import easygui as e#引用模块
import random as r

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

def ARandomNum(end):#一个能生成随机数字的函数
    num = r.randint(0,end)
    return num

def game(i = True):
    while i:
        choices = ['地狱','困难','普通','E Z']
        choice = e.choicebox('请选择难度','选难度',choices)#选择消息框
        if choice == '地狱':#根据上面的难度,决定ends的值,然后再0~ends间生成随机数
            ends = 10000
        elif choice == '困难':
            ends = 1000
        elif choice == '普通':
            ends = 100
        elif choice == '简单':
            ends = 10
            e.msgbox('太拉了吧,选个EZ?')
        
        num = ARandomNum(0,ends)#但是到这里他报错说ends局部变量未定义
        answer = int(e.passwordbox('输入你心中所想','猜'))
        if(num > answer):
            e.msgbox('切,这么小~','小了小了~')
        elif(num < answer):
            e.msgbox('啊!不要,太大了','大了大了!')
        else:
            i = e.boolbox('你猜对了!你要在玩一遍吗?','恭喜你!',('好,今个儿就给你办的彻彻底底','不了不了,已经一点也不剩了(指时间)'))
            
start()
game()
    
有缘的大佬看看,解决一下
最佳答案
2022-7-2 22:03:10
import easygui as e#引用模块
import random as r

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

def ARandomNum(end):#一个能生成随机数字的函数
    num = r.randint(0,end)
    return num

def game(i = True):
    while i:
        choices = ['地狱','困难','普通','E Z']
        choice = e.choicebox('请选择难度','选难度',choices)#选择消息框
        if choice == '地狱':#根据上面的难度,决定ends的值,然后再0~ends间生成随机数
            ends = 10000
        elif choice == '困难':
            ends = 1000
        elif choice == '普通':
            ends = 100
        elif choice == 'E Z':  # 上面明明是E Z为什么这里写简单
            ends = 10
            e.msgbox('太拉了吧,选个EZ?')
        
        num = ARandomNum(ends)  # ARandomNum函数只有一个参数,这里为什么要写两个
        answer = int(e.passwordbox('输入你心中所想','猜'))
        if(num > answer):
            e.msgbox('切,这么小~','小了小了~')
        elif(num < answer):
            e.msgbox('啊!不要,太大了','大了大了!')
        else:
            i = e.boolbox('你猜对了!你要在玩一遍吗?','恭喜你!',('好,今个儿就给你办的彻彻底底','不了不了,已经一点也不剩了(指时间)'))
            
start()
game()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-2 22:03:10 | 显示全部楼层    本楼为最佳答案   
import easygui as e#引用模块
import random as r

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

def ARandomNum(end):#一个能生成随机数字的函数
    num = r.randint(0,end)
    return num

def game(i = True):
    while i:
        choices = ['地狱','困难','普通','E Z']
        choice = e.choicebox('请选择难度','选难度',choices)#选择消息框
        if choice == '地狱':#根据上面的难度,决定ends的值,然后再0~ends间生成随机数
            ends = 10000
        elif choice == '困难':
            ends = 1000
        elif choice == '普通':
            ends = 100
        elif choice == 'E Z':  # 上面明明是E Z为什么这里写简单
            ends = 10
            e.msgbox('太拉了吧,选个EZ?')
        
        num = ARandomNum(ends)  # ARandomNum函数只有一个参数,这里为什么要写两个
        answer = int(e.passwordbox('输入你心中所想','猜'))
        if(num > answer):
            e.msgbox('切,这么小~','小了小了~')
        elif(num < answer):
            e.msgbox('啊!不要,太大了','大了大了!')
        else:
            i = e.boolbox('你猜对了!你要在玩一遍吗?','恭喜你!',('好,今个儿就给你办的彻彻底底','不了不了,已经一点也不剩了(指时间)'))
            
start()
game()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-2 22:20:01 | 显示全部楼层

哇,感谢指点,看来我还是疏漏百出,我刚刚又发现了几个问题当重玩的时候,无法重新选难度,并再随机个数字,不过我决定明天在思考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-27 06:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表