小甲鱼老师布置的课后作业(看到类 对象那里)
用easygui将以前的课后写的【注册登录】和【猜数字】小游戏结合起来,注册后登录进入系统就能玩这个猜数字小游戏。(其实可以加更多小游戏进去,比如【乌龟吃鱼场景模拟】,但是现在学艺不精,改起来很慢还累,等以后学的方法思维多了再重新加。。。)
(其实就是懒。。。{:5_109:} )
import sys
import easygui as g
import random as r
class Dengluqi:
dict1 = {'a':'请输入用户名:','b':'请输入密码:','c':'注册成功,赶紧登录试试吧!','d':'请点击指令代码:'}
dict2 = {}
def zhuce(self):
msg_zhuce_name='欢迎注册!\n请认真填写信息哦!'
title_zhuce = '注册'
shuru_name = ['用户名']
shuru_MM = ['密码']
ss = shuru_name+shuru_MM
name = g.multenterbox(msg_zhuce_name,title_zhuce,ss)
while 1 :
if name == None:
return self.caidan()
panduan ='欢迎注册!\n请认真填写信息哦!\n'
for i in range(2) :
if name == '' :
panduan += ('还没有输入%s.\n'% ss)
if panduan =='欢迎注册!\n请认真填写信息哦!\n':
break
name = g.multenterbox(panduan,title_zhuce,ss,name)
if name not in self.dict2 :
self.dict2] = name
if g.ccbox(self.dict1['c'],title_zhuce,('登录','返回菜单')) :
return self.denglu()
else :
return self.caidan()
else :
if g.ccbox('该用户名已被使用,换一个吧~','提示',('好吧','不了,返回菜单')):
return self.zhuce()
else :
return self.caidan()
def denglu(self):
count = 3
msg_denglu_name='欢迎使用登录程序\n'
title_denglu = '登录'
denglu_name = ['用户名']
denglu_MM = ['密码']
ss = denglu_name+denglu_MM
denglu_shuru =g.multpasswordbox(msg_denglu_name,title_denglu,ss)
while 1 :
if denglu_shuru == None :
return self.caidan()
panduan = '欢迎使用登录程序\n'
for i in range(2) :
if denglu_shuru == '' :
panduan += ('还没有输入%s.\n'% ss)
if panduan == '欢迎使用登录程序\n':
break
denglu_shuru = g.multpasswordbox(panduan,title_denglu,ss,denglu_shuru)
if denglu_shuru not in self.dict2 :
msg_denglu_nonname = '该用户还没有注册,是否去注册?'
if g.ccbox(msg_denglu_nonname,'提示',('注册','返回菜单')) :
return self.zhuce()
else :
return self.caidan()
else :
while 1 :
if denglu_shuru == None :
return self.caidan()
if denglu_shuru != self.dict2] :
msg_denglu_errorMM = ('密码输入错误!\n你还有 %d 次机会!' % count )
count -= 1
if count < 0:
g.msgbox('密码输入错误次数过多,程序即将退出!','警告')
sys.exit(0)
if g.ccbox(msg_denglu_errorMM,'警告',('再试试','返回菜单')):
denglu_shuru = g.multpasswordbox(panduan,title_denglu,ss,denglu_shuru)
continue
else :
return self.caidan()
else :
if g.ccbox('登录成功,祝您使用愉快~','登录成功',('进入系统','返回菜单')):
return caishuzi.caidan()#系统还没写,先用返回菜单代替。。。
else :
return self.caidan()
def caidan(self):
msg_caidan1 = self.dict1['d']
title_caidan = '选择指令'
choices_caidan =['———注册程序———','———登录程序———','———退出程序———']
caidan_choice = g.choicebox(msg_caidan1 , title_caidan ,choices_caidan)
if g.ccbox('确认吗?','提示',('确认','不了')):
if str(caidan_choice) == '———注册程序———':
return self.zhuce()
elif str(caidan_choice) == '———登录程序———':
return self.denglu()
elif str(caidan_choice) == '———退出程序———':
sys.exit(0)
else :
return self.caidan()
class Caishuzi:
#——————————————————————————————————————————————
#——————————————————————————————————————————————
def caidan(self) :
cishu_fanwei = []
msg_caidan1 = '请选择小游戏难度~'
title_caidan = '难度选择'
choices_caidan = ['低级(随机1~10之间的整数,3次错误机会)','中级(随机1~100之间的整数,5次错误机会)','高级(随机1~1000之间的整数,9次错误机会)','退出登录']
caidan_choice = g.buttonbox(msg_caidan1, title_caidan,choices_caidan)
if caidan_choice == '低级(随机1~10之间的整数,3次错误机会)':
cishu_fanwei.append(3)
cishu_fanwei.append(10)
return self.caicaikan(cishu_fanwei)
if caidan_choice == '中级(随机1~100之间的整数,5次错误机会)':
cishu_fanwei.append(5)
cishu_fanwei.append(100)
return self.caicaikan(cishu_fanwei)
if caidan_choice == '高级(随机1~1000之间的整数,9次错误机会)':
cishu_fanwei.append(9)
cishu_fanwei.append(1000)
return self.caicaikan(cishu_fanwei)
if caidan_choice == '退出登录':
return dengluqi.caidan()
#——————————————————————————————————————————————
#——————————————————————————————————————————————
def caicaikan(self,cishu_fanwei):
dict1 ={
'msg1 ': '要玩玩猜数字小游戏吗?',
'title1' : '提示',
'choice1' : ['好呀','不了不了'],
'choice2' : ['继续','返回菜单','退出游戏'],
'choice3' : ['是的','再玩玩儿~'],
'choice4' : ['是的','继续游戏','返回菜单'],
'msg_over' : '确定要结束小游戏吗?',
'msg_right' : '太棒了!你猜对了!\n要继续玩吗?',
'msg_none' : '你还没有输入呢\n',
'msg_tishi1' : '小了小了~\n',
'msg_tishi2' : '大了大了~\n',
'msg_tishi0' : ''}
count = cishu_fanwei
fanwei_r = cishu_fanwei
msg_0 = '请输入一个1~%d之间的整数猜猜看吧~' % cishu_fanwei
msg2 = msg_0
msg_tishi = dict1['msg_tishi0']
msg_cishu = '你还有%d次机会\n' % cishu_fanwei
msg_count = '你还有%d次机会\n' % count
anwser = r.randint(1,cishu_fanwei)
while 1 :
anwser_in = anwser
shuru = g.enterbox(msg_count + msg2 ,'猜猜看吧~')
msg_tishi = dict1['msg_tishi0']
#——————————————————————————————————————————————
if shuru == None : #输入界面点击cancel时
xuanze1 = g.buttonbox(dict1['msg_over'],'提示',dict1['choice4'])
if xuanze1 == dict1['choice4']:
sys.exit(0)
if xuanze1 == dict1['choice4']:
pass
if xuanze1 == dict1['choice4']:
return self.caidan()
#——————————————————————————————————————————————
elif shuru != '': #输入不为空
if shuru.isnumeric() :#输入字符全部时数字字符
if int(shuru) == anwser_in :#输入的是正确数字
xuanze2 = g.buttonbox(dict1['msg_right'],'提示',dict1['choice2'])
count = cishu_fanwei
msg_count=msg_cishu
if xuanze2 == dict1['choice2']:
anwser = r.randint(1,cishu_fanwei)
continue #再来一次
if xuanze2 == dict1['choice2']:
return self.caidan()
if xuanze2 == dict1['choice2']:
sys.exit(0)
#——————————————————————————————————————————————
if count == 0 :#机会用尽
count = cishu_fanwei
msg_count=msg_cishu
xuanze3 = g.buttonbox('次数用光光了T_T~\n正确数字是:%d\n是否重新开始小游戏?' % anwser_in,'提示',dict1['choice2'])
if xuanze3 == dict1['choice2']:
anwser = r.randint(1,cishu_fanwei)
continue #再来一次
if xuanze3 == dict1['choice2']:
return self.caidan()
if xuanze3 == dict1['choice2']:
sys.exit(0)
#——————————————————————————————————————————————
if int(shuru) > anwser_in : #输入的数字比正确数字大
msg2 = dict1['msg_tishi2']
count -= 1
msg_count = '你还有%d次机会\n' % count
if int(shuru) < anwser_in : # 输入的数字比正确数字小
msg2 = dict1['msg_tishi1']
count -= 1
msg_count = '你还有%d次机会\n' % count
if count == 0: #最后一次机会
msg_count='你只有最后一次机会了!\n'
#——————————————————————————————————————————————
else : # 输入的有除数字外其它类型字符
msg2 = msg_0 + '\n请不要输入除整数外的其他东西!'
continue
#——————————————————————————————————————————————
else : # 输入为空(没有输入)
msg2 = dict1['msg_none'] + msg_0
continue
#——————————————————————————————————————————————
#——————————————————————————————————————————————
dengluqi = Dengluqi()
caishuzi = Caishuzi()
ifg.ccbox('要进入程序吗?','提示',['进入','不了']) :
dengluqi.caidan()
else :
sys.exit(0)
前排
页:
[1]