2.21 回到我们的游戏 加入类和函数

我们再一次回到游戏当中,这次,我们将会加上类与函数的用法

回顾一下以前的代码:

import randomexitTag=0userList={}while exitTag!=1:userName=input("请输入你的名字:")if userName=='exit':exitTag=1break;else:secret=random.randint(1,100)#生成随机数#print (secret)time=6#猜数字的次数guess=0#输入的数字minNum=0#最小随机数maxNum=100#最大随机数print("———欢迎来到猜数字的地方,请开始———")while guess!=secret and time>=0:#条件guess=int(input("*数字区间0-100,请输入你猜的数字:"))print("你输入数字是:",guess)if guess==secret:userList[userName]=7-timeprint("猜对了,真厉害")print("历史记录:")for item in userList:print(item+"只用了"+str(userList[item])+"次就猜到了")else:#当不等于的时候,还需要打印出相应的区间,让用户更容易使用if guess<secret:if minNum<guess:minNum=guessprint("提示:你的猜数小于正确答案")print("提示:正确的数字区间是:",minNum,"-",maxNum)else:if maxNum>guess:maxNum=guessprint("提示:你的猜数大于正确答案")print("提示:正确的数字区间是:",minNum,"-",maxNum)print("太遗憾,你猜错了,你还有",time,"次机会")time-=1print("游戏结束")在新的代码里面,

1.我们把中间那一部分核心的游戏代码封装成一个core的类,core类里面有一个guessNum的方法

2.我们把用户封装成一个类,在类里面加入名字和成绩列表,以便记录用户与成绩

下面看代码,请大家留意注释,因为它基本代表了所有的逻辑和解释

#建立游戏的核心玩法类class core(object):version=1.0def guessNum(self):secret=random.randint(1,100)#生成随机数#print (secret)time=6#猜数字的次数guess=0#输入的数字minNum=0#最小随机数maxNum=100#最大随机数print("———欢迎来到猜数字的地方,请开始———")print("提示:输入-1可以随时退出游戏")while guess!=secret and time>=0:#条件guess=int(input("*数字区间0-100,请输入你猜的数字:"))print("你输入数字是:",guess)if guess==secret:return (7-time)#为什么是7,因为我们上面的条件是0-6,所以是7次print("猜对了,真厉害")elif guess==-1:print("提示:你强行退出,这一次不记录成绩")return 'exit'else:#当不等于的时候,还需要打印出相应的区间,让用户更容易使用if guess<secret:if minNum<guess:minNum=guessprint("提示:你的猜数小于正确答案")print("提示:正确的数字区间是:",minNum,"-",maxNum)else:if maxNum>guess:maxNum=guessprint("提示:你的猜数大于正确答案")print("提示:正确的数字区间是:",minNum,"-",maxNum)print("太遗憾,你猜错了,你还有",time,"次机会")guess=0time-=1class User(object):userName=""#用户名resultDict={}#结果列表playTime=1#玩的次数def setUserName(self,name='ray'):self.userName=namedef setResultDict(self,guessTime):self.resultDict[self.playTime]=guessTimeself.playTime+=1#下面是运行代码,类似于java的main函数import randomexitAllTag=0#记录是否全部退出游戏,1:退出exitGameTag=0#记录是否退出个人游戏部分,1:退出userDict={}#记录用户组数据result=''#猜数字游戏返回的结果#处理逻辑:#1.先输入名称,如果不是退出,可以直接进入游戏#2.进行游戏的过程中,可以一直玩,,也可以强退,强退没成绩#3.當用戶進行完遊戲,記錄用戶的成績#4.噹所有的用戶都退出後,打印所有的成績while exitAllTag!=1:userName=input("请输入你的名字:")#设置用户的名字user=User()user.setUserName(userName)exitGameTag=0if userName=='exit':exitAllTag=1break;else:#进行游戏while exitGameTag!=1:result=core().guessNum()#这里存在性能问题,最好使用单例模式if result=='exit':exitGameTag=1#当用户退出时,把成绩记录下来userDict[userName]=user.resultDict;breakelse:#设置用户的结果user.setResultDict(result)for e in user.resultDict:print(e,user.resultDict[e])print("游戏结束")#输出所有人的成绩for name in userDict:print("用户的名字:"+name)for e in userDict[name]:print(e,userDict[name][e])

就说到这里,谢谢大家

——————————————————————

点击跳转零基础学python-目录

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间慢慢的流淌,人生有风雨阳光,

2.21 回到我们的游戏 加入类和函数

相关文章:

你感兴趣的文章:

标签云: