这是我的一些想法,后面还有改进,大家有什么想法一起分享

import time
#角色类
class player:def __init__(self,name,LV,exp, EXP,STR, STA, SKI,CRIT, DODGE,BLOCK,weapon, shield, armour, shoes, hp,HP,ATK,DEF):self.name=nameself.LV = LVself.hp = hpself.HP=HPself.exp = expself.EXP = EXP#基础属性self.ATK=ATKself.DEF=DEFself.STR=STR#力量self.STA=STA#体力self.SKI=SKI#敏捷self.CRIT = CRITself.DODGE = DODGEself.BLOCK = BLOCK#基础装备self.weapon = weaponself.shield = shieldself.armour = armourself.shoes = shoes#属性计算def shuxing(self):self.HP=self.STA*2+self.STR+10+self.armour.health+10#生命=体力*2+力量+护甲提供值+10self.hp=self.hpself.ATK=self.STR * 2 + self.weapon.str * 2 + self.SKI+5#攻击=力量*2+闪避+5self.STR=self.weapon.str + self.STRself.STA=self.STA + self.armour.STA+ self.shoes.STA + self.shield.STAself.DEF=self.STA + self.armour.STA+ self.shoes.STA + self.shield.STA+2self.SKI=self.SKI + self.shoes.SKIself.CRIT=self.CRIT+self.weapon.crit+round(self.SKI/15)self.BLOCK=self.BLOCK+self.shield.blockself.DODGE=self.DODGE+round(self.SKI/15)return player# showHero:输出冒险者的面板def showHero(self):print('角色:', self.name)self.showStatus()time.sleep(1)self.showEquipment()return player#展示属性def showStatus(self):time.sleep(1)print('LV:', self.LV)time.sleep(0.5)print('HP:{0}/{1}'.format(self.hp, self.HP))time.sleep(0.5)print('攻击:{0}\t防御:{1}'.format(self.ATK,self.DEF))time.sleep(0.5)print('力量:{0}\t体力:{1}\t敏捷:{2}'.format(self.STR,self.STA,self.SKI))time.sleep(0.5)print('暴击:{0}\t格挡:{1}\t闪避:{2}'.format(self.CRIT, self.BLOCK,self.DODGE))time.sleep(0.5)print('经验:', self.exp, '/', self.EXP)#展示装备def showEquipment(self):time.sleep(0.5)print('装备:')time.sleep(1)print(f"武器:{self.weapon.name}\t力量+{self.weapon.str}暴击+{self.weapon.crit}\t经验:{self.weapon.exp}/{self.weapon.EXP}")time.sleep(1)print(f"盾牌:{self.shield.name}\t体力+{self.shield.STA}格挡+{self.shield.block}\t经验:{self.shield.exp}/{self.shield.EXP}")time.sleep(1)print(f"护甲:{self.armour.name}\t体力+{self.armour.STA}生命+{self.armour.health}\t经验:{self.armour.exp}/{self.armour.EXP}")time.sleep(1)print(f"鞋子:{self.shoes.name}\t体力+{self.shoes.STA}闪避+{self.shoes.SKI}\t经验:{self.shoes.exp}/{self.shoes.EXP}")#升级属性点分配def fenpei(self):time.sleep(1)print('获得10点属性值:')  # 获得10点属性值strup = input('力量分配:')  # 分配给力量while True:while True:if int(strup) in range(11):  # 确定力量的在10以内staup = input('体力分配:')  # 分配给体力breakelse:strup = input("请重新输入:")if int(staup) in range(0, 11 - int(strup)):print('敏捷分配:', 10 - int(strup) - int(staup))breakelse:staup = input("请重新输入:")self.STA = self.STA + int(staup)self.STR = self.STR + int(strup)self.SKI = self.SKI + 10 - int(staup) - int(strup)player.shuxing(start)  #属性分配完结算到属性return start#升级def lvup(self, exp):time.sleep(2)while True:if exp >= self.EXP:self.exp = exp - self.EXPself.EXP = self.EXP * 2self.LV += 1print("升级! LV", self.LV)player.fenpei(self)#升级加属性time.sleep(1)else:print("当前经验:", self.exp, "/", self.EXP)time.sleep(1)breakself.hp=self.HPreturn start
#装备类,计划武器升级系统:武器命中成功+经验,暴击翻倍,护甲受击成功+经验,鞋子闪避成功+经验,护盾格挡成功+经验
class Equipments():# 创建武器类class Weapon:def __init__(self, name, str, crit, exp, EXP):self.name = nameself.str = strself.crit = critself.exp = expself.EXP = EXP# 创建盾牌类class Shield:def __init__(self, name, STA, block, exp, EXP):self.name = nameself.STA = STAself.block = blockself.exp = expself.EXP = EXP# 创建盔甲类class Armour:def __init__(self, name, STA, health, exp, EXP):self.name = nameself.STA = STAself.health = healthself.exp = expself.EXP = EXPclass Shoes:def __init__(self, name, STA, SKI, exp, EXP):self.name = nameself.STA = STAself.SKI = SKIself.exp = expself.EXP = EXP
#初始设置英雄
def initplayer(name):LV = 0HP=10hp=HPATK=5DEF=2exp = 0EXP = 10STR=1STA=1SKI=1CRIT=0DODGE=0BLOCK=0weapon = Equipments.Weapon('新手刀', 1, 1, 0, 10)shield = Equipments.Shield('新手盾', 1, 1, 0, 10)armor = Equipments.Armour('新手甲', 1, 1, 0, 10)shoes = Equipments.Shoes('新手鞋', 1, 1, 0, 10)start = player(name,LV,exp, EXP,STR, STA, SKI,CRIT, DODGE,BLOCK,weapon, shield, armor, shoes, hp,HP,ATK,DEF)player.shuxing(start)return start#测试
if __name__ == '__main__':name='sky'start = initplayer(name)start.showStatus()start.lvup(12)start.showStatus()start.lvup(20)start.showStatus()

输出结果为:

LV: 0
HP:10/24
攻击:10    防御:9
力量:2    体力:4    敏捷:2
暴击:1    格挡:1    闪避:0
经验: 0 / 10
升级! LV 1
获得10点属性值:
力量分配:2
体力分配:4
敏捷分配: 4
当前经验: 2 / 20
LV: 1
HP:41/41
攻击:21    防御:16
力量:5    体力:11    敏捷:7
暴击:2    格挡:2    闪避:0
经验: 2 / 20
升级! LV 2
获得10点属性值:
力量分配:4
体力分配:2
敏捷分配: 4
当前经验: 0 / 40
LV: 2
HP:56/56
攻击:36    防御:21
力量:10    体力:16    敏捷:12
暴击:4    格挡:3    闪避:1
经验: 0 / 40

进程已结束,退出代码0

Python文字游戏:升级、打怪、属性点、装备等(一)相关推荐

  1. 超过3000赞的「机器学习路线图」,教你升级打怪全攻略

    互联网的一个问题就是:信息太多. 对想要学习机器学习的人来说,信息太多也是一种困扰,开放的课程.书籍.框架.开源代码那么多,每套资料都有自己的好处,有人说这个课程好,有人说那个框架最好用. 那么,对新 ...

  2. 【2022.09.04】关于升级打怪学编程活动的通知

    把电子学会全国青少年软件编程等级考试作为游戏的关卡,带着小朋友们升级打怪. 升级打怪计划 每周日晚20:00,我在腾讯会议中进行直播答疑,解决小朋友们本周遇到的编程问题,辅助小朋友们提升编程的技能. ...

  3. 升级打怪课堂的题库更新了!

    把电子学会全国青少年软件编程等级考试作为游戏的关卡,带着小朋友们升级打怪. 每周日晚20:00,我在腾讯会议中进行直播答疑,解决小朋友们本周遇到的编程问题,辅助小朋友们提升编程的技能. 这些问题主要来 ...

  4. 阿里测试开发9年,我的升级打怪之路。

    今年是在阿里工作第9个年头,2012年本科毕业来,不知不觉在阿里升级打怪已经9年,今天对自己9年做一个总结. 我会分2个部分来进行分享: 1.是什么牵引我在一个公司呆了9年? 2.如何成长?我所看到的 ...

  5. 【复盘】升级打怪第一关,冲啊!

    Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复[Scratch],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载"可获取以往学习 ...

  6. gitlab 迁移、升级打怪之路:8.8.5-- 8.10.8 -- 8.17.8 -- 9.5.9 -- 10.1.4 -- 10.2.5

    gitlab 迁移.升级打怪之路:8.8.5--> 8.10.8 --> 8.17.8 --> 9.5.9 --> 10.1.4 --> 10.2.5 gitlab 数据 ...

  7. 3D动作绑定_全息3D叶修养成记?升级打怪玩转荣耀,HE叶修体验

    近几年国产动漫发展还是比较迅速的,经常能看到一些比较好的动漫作品,此前<全职高手>更是被翻拍成真人版电视剧.<全职高手>里面的主角叶修是荣耀网游全职业精通的"全职高手 ...

  8. python3.7.2安装步骤-python安装升级详细步骤 Python2 升级 Python3

    多数情况下,系统自动的Python版本是2.x, 或者yum直接安装的也是2.x ,但是,现在多数情况下建议使用3.x ,那么如何升级呢? ,下面老徐详细讲解升级步骤; 首先下载源tar包 可利用li ...

  9. Sublime Text 4 首个稳定版终于来了:支持 GPU 渲染、兼容旧版本、Python API 升级

    技术编辑:小魔丨发自 思否编辑部 公众号:SegmentFault Sublime Text 是一个轻量.简洁.高效.跨平台的编辑器,支持 Linux.Windows 和 Mac OS X 操作系统, ...

  10. 春招升级打怪拿offer,10w+字总结的Java面试题(附答案)够你刷

    春招升级打怪拿offer,献上熬夜整理最新"10w+字总结的Java面试题(附答案)"够你刷! 其包含的内容模块有:基础.JVM.多线程与高并发.Spring.MyBatis.Sp ...

最新文章

  1. 还在被人脸识别准确率指标欺骗吗?
  2. ActivityGroup自我堆栈管理(复用现有activity)
  3. Failed to find byte code for java/util/function/BiConsumer
  4. Android O 新特性 — Notification
  5. java逻辑量_java – 增量逻辑
  6. SAP License:SAP订单的归档及删除
  7. PyTorch:tensor-数据处理
  8. element-UI快速上手例子运行失败
  9. 跨进程 API hook
  10. 微星主板怎么开启CPU虚拟化技术VT-X(intel和AMD)
  11. TCL语言学习笔记一
  12. cnn程序流程图_画流程图的基本原则
  13. 嵌入式linux调试dsi,DSI device tree configuration
  14. 自己写的一点福利代码(三)
  15. springboot整合mybatis,使用逆向工程和使用通用mapper的方式
  16. ps一点等于多少厘米_在ps中1厘米是多少像素
  17. 德国精品软件 小红伞杀毒软件 AntiVir
  18. c++ 中对vector的使用方法
  19. Springboot+mysql+基于VUE框架的商城综合项目设计与实现 毕业设计-附源码111612
  20. C语言 时钟模拟(gotoxy函数的运用)

热门文章

  1. 该怎样在KeyShot中进行贴图
  2. 手把手教你定制专属的个性化登陆界面,让你的终端更炫酷!
  3. C++ Qt5学习笔记 2020-12-10(qlabel对齐方式,dateEdit显示日历,设置滚动条及其一些属性,qss中使用参数,QToolBox的使用,及以此实现简易的QQ好友列表)
  4. 洞态IAST Python-agent 内测版 测试
  5. c++中stringstream常见用法
  6. 行业研究: 如何迅速摸清陌生行业领域?
  7. 4月15日csol服务器维护中,csol2017年2月15日更新内容一览 csol2.15更新公告
  8. 建议日志 slog 改换 tracing
  9. Sony VGN 笔记本声卡驱动安装问题
  10. 深入学习SpringCloud之SpringCloud简介