花一晚上时间做的一个RPG小游戏,欢迎大家联系我,和我交流。
接下来计划做一个基于socket网络连接,可以实现,多人登录进去玩的RPG网络小游戏

游戏效果

// main.pyfrom M1 import M1if __name__ == '__main__':m1=M1()
// M1.py
import time,os
from man import *
from battle import battleclass M1:def __init__(self):st = 1print('第一章')print('这是一个明媚的早晨')time.sleep(st)print('我们的英雄又开始了他的征程')time.sleep(st)print('不好!\n')time.sleep(st)print('怪物史莱姆来袭')time.sleep(st)os.system('cls')print('进入战斗')man1 = man('英雄')shi1 = shilaimu('史莱姆1')battle1 = battle(man1,shi1)
// man.py
import randomclass man:def __init__(self,name):self.name=nameself.gong=10self.fang=0self.xue=500self.mo=50self.money=0def attack(self,one):print(self.name+'攻击了'+one.name)x = self.gong - one.fang#破防if(x>0):one.xue=one.xue-xprint(one.name+'减少了'+str(x)+'血量')print('\n')else:print('没有造成伤害')print('\n')def mo_attack(self,one):mofazhi = 20if(self.mo <= mofazhi):print(self.name+'没有足够的魔法')print('\n')return 0print(self.name+'使用魔法攻击,攻击了'+one.name)self.mo -= mofazhix = 100one.xue=one.xue-xif(one.xue<0):one.xue=0print(one.name+'被打败了')else:print(one.name+'减少了'+str(x)+'血量')print('\n')def jiaxue(self,num):self.xue+=numprint(self.name+'自己加血,加了'+str(num)+'点血')print('\n')def jiamo(self,num):self.mo+=numprint(self.name+'自己加蓝,加了'+str(num)+'点蓝')print('\n')def item(self):while True:print('1、血瓶2、蓝瓶')a=input('请选择物品')if(a=='1'):self.jiaxue(100)breakelif(a=='2'):self.jiamo(100)breakelse:print('输入错误')def showinfo(self):print('*'*20)print('姓名:'+self.name)print('攻击力:'+str(self.gong))print('防御力:'+str(self.fang))print('血量:'+str(self.xue))print('魔法值:'+str(self.mo))print('*'*20)print('\n')class shilaimu(man):def __init__(self,name):self.name=nameself.gong=20self.fang=0self.xue=1000self.mo=100self.money=0def rand_attack(self,one):x = random.random()if(x<0.3):self.attack(one)if(x>=0.3 and x<0.7):self.mo_attack(one)if(x>=0.7):self.jiaxue(50)
// battle.py
import time,os,randomclass battle:def __init__(self,one,two):self.one = oneself.two = twoself.b_main()def b_main(self):while True:if(self.one.xue<=0 or self.two.xue<=0):self.b_is_over()breakself.one.showinfo()self.two.showinfo()#英雄行为print('你可以:1、普通攻击2、法术攻击3、物品4、逃跑')a=input('请选择操作:')print('\n')if(a=='1'):self.one.attack(self.two)elif(a=='2'):self.one.mo_attack(self.two)elif(a=='3'):self.one.item()elif(a=='4'):if(self.b_is_goahead()):breakelse:print('输入错误')if(self.two.xue<=0):break#怪物行为self.two.rand_attack(self.one)input('')os.system('cls')def b_is_over(self):print('战斗结束')if(self.one.xue>0 and self.two.xue<=0):print(self.one.name+'胜利')if(self.two.xue>0 and self.one.xue<=0):print(self.two.name+'胜利')time.sleep(1)def b_is_goahead(self):if(random.random()>0.5):print('逃跑成功')time.sleep(1)return 1else:print('逃跑失败')time.sleep(1)return 0

编译成EXE文件
pyinstall.exe -c -F main.py -p .

python做的RPG小游戏(面向对象思想)相关推荐

  1. 用Python做贪吃蛇小游戏

    用Python做贪吃蛇小游戏 简介 引言 游戏预览 结构图 代码框架图 代码讲解 main主函数-开始工作 show_start_info()欢迎进入游戏 running_game-让我们开始游戏吧 ...

  2. 自学一周python做的一个小游戏《大球吃小球》

    需求 1,显示一个窗口. 2,我们要做到的功能有鼠标点击屏幕生成小球. 3,生成的小球大小随机,颜色随机,向随机方向移动,速度也随机. 4,大的球碰到小球时可以吃掉小球,吃掉后会变大. 5,球碰到边界 ...

  3. Python之初级RPG小游戏

    在国外网站上找到一个练习Python的小游戏感觉不错,自己实现了一下. 通过该练习你能学到: 元组 字典 简单定义函数和封装 条件控制语句 游戏说明 以下是3个房间和1个花园: Hall 客厅 有一把 ...

  4. 用Python做雷霆战机小游戏【附素材+源码】

    前言 嗨嗨,我是小圆 最近很多朋友都在问我要一些游戏的代码 所以这篇文章就出来了 [想一键获取素材和源码的,点击文章末尾名片] 模块准备 import pygame, os import time i ...

  5. 用Python做雷霆战机小游戏【赠素材+源码】

    前言 嗨嗨,我是小圆 最近很多朋友都在问我要一些游戏的代码 所以这篇文章就出来了 [想一键获取素材和源码的,点击文章末尾名片] 模块准备 import pygame, os import time i ...

  6. 用python做一个坦克小游戏_Python制作经典坦克大战小游戏

    image.png 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. ...

  7. python做一个赌博小游戏水火草对战

    import random sum=0 playerc = 10 computer = 10 sum1=4 for i in range(1,sum1):p = int(input("你打算 ...

  8. Python小项目,我拿Python做了这些小玩意儿

    平时的一些小想法,大都可以在网上找到很多大神们的实现方法,特别是用python实现,借助于丰富的第三方库,加以理解和简单的修改,python真的适合完成一些突发奇想的小工具. 1 用python获取实 ...

  9. 用python做一个简单的游戏,用python写一个小游戏

    大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...

最新文章

  1. 编写python程序输出图形_python 图形化编程---文本输入框
  2. oracle eco 开放接口,问题:关于ECO,ECN的API或者INTERFACE
  3. 下列关于python的描述正确的是-以下关于Python中模块的说法正确的是(_____)。...
  4. 重构,还是重写?(2020版)
  5. C#获取容器窗体中控件Location问题
  6. 【IT笔试面试题整理】二叉树中和为某一值的路径--从根到叶子节点
  7. 找CTO杜仲:技术人别把股权(期权)弄成一张废纸(新书推荐)
  8. 推断(inference)、贝叶斯规则(Bayes's rule)与导出分布(derived distribution)
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的超市库房管理系统
  10. SQL Server一些重要视图 1
  11. Android ExpandableListView实现列表可扩展点击显示内容或隐藏内容
  12. MSDN精选:Lambda 表达式(C# 编程指南)
  13. PDF Explained(翻译)第一章 简介
  14. vi编辑器复制删除常用命令
  15. H264码流中SPS PPS详解
  16. 笔记本重装windows系统,office全家桶消失的解决方案
  17. Error processing condition on org.springframework.boot.actuate.autoconfigure.audit.AuditEventsEndpoi
  18. 批量图像自动分割 grabcut+阈值分割 opencv
  19. java single threaded_[Java多线程设计模式]读书笔记 - 第一章 Single Threaded Execution
  20. 《HOP-Matting:Hierarchical Opacity Propagation for Image Matting》论文笔记

热门文章

  1. 关于高斯光学的一些知识
  2. Microsoft Excel 直方图
  3. php 生成 webp,PHP imagewebp()用法及代码示例
  4. python中导入numpy库_python中的Numpy库
  5. android 字符画,抖音上很火的字符画 Android 实现 | 视频转换实现
  6. DataSet数据集
  7. python求峰面积_python---matplotlib
  8. 三阶魔方七步还原法公式备忘录
  9. java 调用天气预报接口_java调用天气预报接口案例
  10. 医疗行业售前100问之第2问:医院有几张网?