设为首页 收藏本站
查看: 685|回复: 0

[经验分享] 零基础学python-2.21 回到我们的游戏 加入类和函数

[复制链接]

尚未签到

发表于 2017-5-8 11:03:15 | 显示全部楼层 |阅读模式
  我们再一次回到游戏当中,这次,我们将会加上类与函数的用法
  回顾一下以前的代码:

import random
exitTag=0
userList={}
while exitTag!=1:
userName=input("请输入你的名字:")
if userName=='exit':
exitTag=1
break;
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-time
print("猜对了,真厉害")
print("历史记录:")
for item in userList:
print(item+"只用了"+str(userList[item])+"次就猜到了")               
else:
#当不等于的时候,还需要打印出相应的区间,让用户更容易使用
if guess<secret:
if minNum<guess:
minNum=guess
print("提示:你的猜数小于正确答案")            
print("提示:正确的数字区间是:",minNum,"-",maxNum)
else:
if maxNum>guess:
maxNum=guess
print("提示:你的猜数大于正确答案")
print("提示:正确的数字区间是:",minNum,"-",maxNum)
print("太遗憾,你猜错了,你还有",time,"次机会")
time-=1
print("游戏结束")



在新的代码里面,  1.我们把中间那一部分核心的游戏代码封装成一个core的类,core类里面有一个guessNum的方法
  2.我们把用户封装成一个类,在类里面加入名字和成绩列表,以便记录用户与成绩
  下面看代码,请大家留意注释,因为它基本代表了所有的逻辑和解释

#建立游戏的核心玩法类
class core(object):
version=1.0
def 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=guess
print("提示:你的猜数小于正确答案")            
print("提示:正确的数字区间是:",minNum,"-",maxNum)
else:
if maxNum>guess:
maxNum=guess
print("提示:你的猜数大于正确答案")
print("提示:正确的数字区间是:",minNum,"-",maxNum)
print("太遗憾,你猜错了,你还有",time,"次机会")
guess=0
time-=1
class User(object):
userName=""#用户名
resultDict={}#结果列表
playTime=1#玩的次数
def setUserName(self,name='ray'):
self.userName=name
def setResultDict(self,guessTime):
self.resultDict[self.playTime]=guessTime
self.playTime+=1
#下面是运行代码,类似于java的main函数
import random
exitAllTag=0#记录是否全部退出游戏,1:退出
exitGameTag=0#记录是否退出个人游戏部分,1:退出
userDict={}#记录用户组数据
result=''#猜数字游戏返回的结果
#处理逻辑:
#1.先输入名称,如果不是退出,可以直接进入游戏
#2.进行游戏的过程中,可以一直玩,也可以强退,强退没成绩
#3.當用戶進行完遊戲,記錄用戶的成績
#4.噹所有的用戶都退出後,打印所有的成績
while exitAllTag!=1:   
userName=input("请输入你的名字:")
#设置用户的名字
user=User()
user.setUserName(userName)
exitGameTag=0
if userName=='exit':
exitAllTag=1
break;
else:
#进行游戏
while exitGameTag!=1:            
result=core().guessNum()#这里存在性能问题,最好使用单例模式
if result=='exit':
exitGameTag=1
#当用户退出时,把成绩记录下来
userDict[userName]=user.resultDict;
break
else:
#设置用户的结果
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-目录





  

  


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-374603-1-1.html 上篇帖子: 零基础学python-2.21 回到我们的游戏 加入类和函数 下篇帖子: 零基础学python-2.21 回到我们的游戏 加入类和函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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