import time,os,randomclass 人物:def __init__(self,name,maxhp=100,ac=10,speed=1.0,money=0):self.name=nameself.hp=maxhpself.maxhp=maxhpself.minac=int(ac*0.5)self.maxac=int(ac*1.5)self.speed=speedself.exp=0self.money=moneyself.maxexp=100self.rank=0self.challenge=0def rankup(self):self.maxhp+=10+self.rankself.minac+=random.randint(2,8)self.maxac+=random.randint(4,12)self.hp=self.maxhpself.speed+=0.1self.exp-=self.maxexpself.maxexp=int(self.maxexp*1.1)self.rank+=1def printa(self):print('【%s】' %self.name)print('等级:%d(%d/%d)' %(self.rank,self.exp,self.maxexp))print('生命值:%d/%d' %(self.hp,self.maxhp))print('攻击力:%d-%d' %(self.minac,self.maxac))print('速度:%.1f' %self.speed)print('金钱:%d' %self.money)print('劲敌等级:%d' %self.challenge)print()def ac(self):return random.randint(self.minac,self.maxac)def save(self):s=self.name+'\n'+str(self.rank)+'\n'+str(self.exp)+'\n'+str(self.maxexp)+'\n'+str(self.hp)+'\n's+=str(self.maxhp)+'\n'+str(self.minac)+'\n'+str(self.maxac)+'\n'+str(self.speed)+'\n'+str(self.money)+'\n's+=str(self.challenge)with open('hero.save','w') as f:f.write(s)print('数据保存完毕!\n')def 加载勇士():global heroif os.path.exists('hero.save'):try:with open('hero.save','r') as f:d=f.read().split('\n')hero=人物(d[0])hero.rank=int(d[1])hero.exp=int(d[2])hero.maxexp=int(d[3])hero.hp=int(d[4])hero.maxhp=int(d[5])hero.minac=int(d[6])hero.maxac=int(d[7])hero.speed=float(d[8])hero.money=int(d[9])hero.challenge=int(d[10])print('欢迎回来,勇士!')print()return 0except Exception as e:print('存档读取出错:',e)print()hero=人物(input('勇士,取名:'))def 战斗_伤害事件(A,B):global timestimes+=1ac=B.ac()A.hp-=acprint('<%d>\n【%s】攻击【%s】!\n【%s】受到 %d 点伤害!\n【%s】剩余生命值:%d\n' %(times,B.name,A.name,A.name,ac,A.name,A.hp))if A.hp<=0:return 1else:return 0def 获取经验系数函数(x):if x<5:return -0.198*x+1if x>=5:return 0.01def 去打怪(who):global timestry:s2=int(input('你想挑战多少等级的怪物?(>0)'))except:s2=1print()if s2>0:os.system('cls')print('挑战【%d】级怪物开始!\n' %s2)if who.challenge<s2:who.challenge=s2monster=人物('怪物'+str(s2)+'号',s2*50,s2*8,s2/5+1,s2*random.randint(0,20))exp=int(s2*100*获取经验系数函数(who.rank-s2))if s2%10==0:monster.hp+=40monster.minac+=6monster.maxac+=12monster.money+=s2//10*200exp*=2print('这个怪物异常强大!')times=0while monster.hp>0 and who.hp>0:if monster.speed>who.speed:if 战斗_伤害事件(who,monster):breaktime.sleep(0.5)if 战斗_伤害事件(monster,who):breaktime.sleep(0.5)else:if 战斗_伤害事件(monster,who):breaktime.sleep(0.5)if 战斗_伤害事件(who,monster):breaktime.sleep(0.5)if who.hp>0:if monster.money>0:print('你成功的消灭了怪物,经验和钱包得到了增长!')else:print('你成功的消灭了怪物,经验得到了增长!')who.exp+=expranktmp=0while who.exp>=who.maxexp:who.rankup()ranktmp+=1if ranktmp==1:print('【%s】的力量发生了质变!\n' %who.name)elif ranktmp>1 and ranktmp<100:print('【%s】的力量得到了惊人的提升!\n' %who.name)elif ranktmp>=100:print('【%s】一定是开了作弊器!\n' %who.name)who.money+=monster.moneyelse:print('很遗憾勇士,你被怪物杀死了...游戏结束...')print()return Trueelse:print('没有更弱的怪物了,勇士。')print()return Falsedef 寻求治疗(who):os.system('cls')if who.hp<who.maxhp and who.money>0:if who.money>=who.maxhp-who.hp:print('在圣光的洗礼下,你恢复如初!')who.money-=who.maxhp-who.hpwho.hp=who.maxhpelse:print('由于你的金钱不够,牧师只治疗了你部分伤势……真是黑暗!')who.hp+=who.moneywho.money=0else:print('你的心灵得到了治愈...')print()加载勇士()
#hero=人物(input('勇士,取名:'))gameover=Falsewhile gameover==False:print('1、去打怪')print('2、查看属性')print('3、寻求治疗')print('4、保存存档')print()s=input('勇士你现在打算干嘛?(输入序号执行对应操作)')print()if s=='1':gameover=去打怪(hero)elif s=='3':寻求治疗(hero)elif s=='4':os.system('cls')hero.save()else:os.system('cls')hero.printa()input('-- Game Over --')

【Python】200行的文字RPG游戏相关推荐

  1. c++rpg黑框游戏_RPG游戏 C++源码 文字RPG游戏

    文字RGP游戏--人魔之战! NOTE:更新,源码及程序可以从百度网盘下载:下载文字RPG游戏 NOTE:此游戏是很久之前的作品,由于某些原因不再提供更新,未来有可能提供新版本的游戏代码,敬请期待. ...

  2. Python——利用pygame模块制作RPG游戏(一)

    利用pygame模块制作RPG游戏(一) 需要用到的第三方库:pygame 一.构造游戏的基本框架 1.首先准备好相应的游戏素材:背景,人物动作图片,音乐,音效等. 图片均用png格式,音乐音效均用o ...

  3. 2048左移JAVA代码实现,200 行代码实现 2048 游戏

    原标题:200 行代码实现 2048 游戏 作者:Guolanzhe 原文: http://www.guolanzhe.com/?p=522创建游戏文件 2048.py 首先导入需要的包: impor ...

  4. C/C++——文字RPG游戏:MINERPG

    更新版本 更新内容 新机制:护盾,回合外反击,限定技能: 战士:新增限定技能无尽之血: 法师:相位转移调整:嗜法重做:风暴盾.暴风雪.心灵震爆.法力燃烧调整:删除技能附魔武器:冰枪术重做:新增技能法力 ...

  5. 200 行代码实现 2048 游戏

    创建游戏文件 2048.py 首先导入需要的包: import curses from random import randrange, choice from collections import ...

  6. 20行python代码的入门级小游戏-200行Python代码实现的2048小游戏

    2048这个小游戏大家都不陌生,应该都玩过,之前已经在网上见过各个版本的2048实现了,有JAVA.HTML5等,今天我就给大家来一个我自己在 实验楼 学到的python版2048.所有代码加起来才2 ...

  7. 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏

    使用Dart/Flutter语言开发的命令行文字RPG类型小游戏 项目源码:https://gitee.com/FantasyWind/word_game 介绍 项目背景 本项目为使用Dart/Flu ...

  8. python小游戏代码200行左右,python编程小游戏代码

    大家好,本文将围绕python小游戏代码200行左右展开说明,小游戏程序代码python是一个很多人都想弄明白的事情,想搞清楚python编程小游戏代码需要先了解以下几个事情. 1.python简单小 ...

  9. python 双人俄罗斯方块游戏(附全部代码,约200行)

    游戏网格列表值为0的地方表示可以移动,为1的地方不能移动,包括旋转.显示阵列初始值为0,移动方块不能移动后,所占区域的值赋值1. self.display_array = [[0 for i in r ...

最新文章

  1. 清华校长俯身拨穗!曾收病危通知书的博士毕业,刷屏的却是这个人
  2. Namenode文件系统命名空间映像文件及修改日志
  3. python3环境下用matplotlib库实现UI交互
  4. kafka是什么_终于知道Kafka为什么这么快了!
  5. PHP 多参数方法的重构
  6. ADO.NET学习笔记--数据汇总(聚合函数)
  7. 2019湖南多校第三场
  8. CloudIDE插件在手,按时下班不愁
  9. JAVA中Random分析
  10. 前端性能优化(慕课网笔记)-4-资源的优化
  11. 模糊控制洗衣机MATLAB模型,洗衣机的模糊控制MATLAB仿真
  12. 408 操作系统 知识点总结
  13. 第一次OllyDbg逆向记录(分析思路和注意点其他文章)
  14. 星载SAR的各项指标解读(史上最全)预览
  15. 云服务器架设大话西游2,端游[大话西游]天演册虚拟机镜像一键启动服务端+客户端+GM工具等...
  16. 解决Windows server 2003不认U盘
  17. ubuntu安装frps服务器与xtcp配置
  18. 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]
  19. 基于微信小程序的体育课评分系统小程序
  20. 海思Hi351X相关

热门文章

  1. 极智开发 | 昇腾atlas300 docker开发环境搭建
  2. Mac下的终端(Terminal)简介
  3. kali渗透测试与教学笔记10
  4. 指针实现函数返回多个值
  5. html如何实现加载动画
  6. ADO对Excel对象进行连接时的 两种方法区别
  7. 禅道讲义之超级管理员
  8. 【java毕业设计】基于javaEE+SSH+oracle的健康管理系统设计与实现(毕业论文+程序源码)——健康管理系统
  9. OFBiz终于起航了
  10. 【经验分享】CSDN如何修改文字的字体、大小以及颜色