需求:

回合制游戏:

大话西游、梦幻西游、魔塔...

角色:

Hero:

属性:

名字、生命值、伤害值(浮动随机值)

方法:

攻击方法

Boss:

属性:

名字、生命值、伤害值(浮动)

方法:

攻击方法

实现思路伪代码:

Hero

Boss

while True:

if Hero.活着:

Hero.攻击(Boss)

if Boss.生命值<= 0:

print(“You Win”)

break

if Boss.没挂:

Boss.反击(Hero)

if Hero.生命值<= 0:

print(“Boss Win”)

break

回合制游戏V1.0

import random

import time

class Hero():

def __init__(self,name,hp,damage):

self.name = name

self.hp = hp

self.damage = damage

#英雄攻击boss的方法,boss做参数,传进来

def attack_boss(self,boss):

# 伤害值增加随机浮动伤害值

rand_damge = random.randint(1,99)

boss.hp -= (self.damage+rand_damge)

print("英雄:%s 攻击Boss:%s 伤害值:%d Boss剩余生命值:%d"

%(self.name,boss.name,self.damage+rand_damge,boss.hp))

class Boss():

def __init__(self, name, hp, damage):

self.name = name

self.hp = hp

self.damage = damage

# 英雄攻击boss的方法,boss做参数,传进来

def attack_hero(self, hero):

rand_damge = random.randint(1, 35)

hero.hp -= (self.damage+rand_damge)

print("Boss:%s 攻击英雄:%s 伤害值:%d 英雄剩余生命值:%d"

% (self.name, hero.name, self.damage+rand_damge, hero.hp))

count = 1

#创建英雄

hero1 = Hero('至尊宝',1000,20)

#创建Boss

boss1 = Boss('白晶晶',3000,5)

while True:

print("------------------【round%d】-----------------"%count)

if hero1.hp > 0:

hero1.attack_boss(boss1)

if boss1.hp <= 0:

print("至尊宝获胜")

break

if boss1.hp > 0:

boss1.attack_hero(hero1)

if hero1.hp <= 0:

print("晶晶获胜")

break

count += 1

time.sleep(0.8)

print('\n'*5)

控制台截图

回合制游戏V1.1 (增加暴击)

v1.1

新增功能:

1.暴击伤害

概率性的暴击

伤害值*2

暴击伤害打印的突出(颜色,字体加粗)

这里定的暴击伤害的出现概率是20%import random

import time

class Hero():

def __init__(self,name,hp,damage):

self.name = name

self.hp = hp

self.damage = damage

#英雄攻击boss的方法,boss做参数,传进来

def attack_boss(self,boss):

rand_num = random.randint(1,10)

if rand_num == 1 or rand_num == 2:

#调用暴击伤害

self.attack2_boss(boss)

else:

#调用普通伤害

self.attack1_boss(boss)

#普通伤害

def attack1_boss(self,boss):

# 伤害值增加随机浮动伤害值

rand_damge = random.randint(1, 99)

boss.hp -= (self.damage + rand_damge)

print("英雄:%s 攻击Boss:%s 伤害值:%d Boss剩余生命值:%d"

% (self.name, boss.name, self.damage + rand_damge, boss.hp))

#暴击伤害

def attack2_boss(self,boss):

# 伤害值增加随机浮动伤害值

rand_damge = random.randint(1, 99)

boss.hp -= (self.damage + rand_damge)*2

print("英雄:%s 攻击Boss:%s \033[1;31m暴击伤害值:%d\033[0m Boss剩余生命值:%d"

% (self.name, boss.name, (self.damage + rand_damge)*2, boss.hp))

#技能伤害

# def attack3_boss(self,boss):

# pass

class Boss():

def __init__(self, name, hp, damage):

self.name = name

self.hp = hp

self.damage = damage

# 英雄攻击boss的方法,boss做参数,传进来

def attack_hero(self, hero):

rand_damge = random.randint(1, 35)

hero.hp -= (self.damage+rand_damge)

print("Boss:%s 攻击英雄:%s 伤害值:%d 英雄剩余生命值:%d"

% (self.name, hero.name, self.damage+rand_damge, hero.hp))

count = 1

#创建英雄

hero1 = Hero('至尊宝',1000,20)

#创建Boss

boss1 = Boss('白晶晶',3000,5)

while True:

print("------------------【round%d】-----------------"%count)

if hero1.hp > 0:

hero1.attack_boss(boss1)

if boss1.hp <= 0:

print("至尊宝获胜")

break

if boss1.hp > 0:

boss1.attack_hero(hero1)

if hero1.hp <= 0:

print("晶晶获胜")

break

count += 1

time.sleep(0.8)

print('\n'*5)

控制台截图

回合制游戏V1.2 (增加技能攻击)

v1.2

新增功能:

1.技能伤害

封装技能类

属性:

技能名

伤害值

2.英雄创建的时候,需要直接给与技能

这里定的技能攻击伤害值为300,出现概率为10%import random

import time

class Hero():

def __init__(self,name,hp,damage,skillQ):

self.name = name

self.hp = hp

self.damage = damage

self.skillQ = skillQ

#英雄攻击boss的方法,boss做参数,传进来

def attack_boss(self,boss):

rand_num = random.randint(1,10)

if rand_num == 1 or rand_num == 2:

#调用暴击伤害

self.attack2_boss(boss)

elif rand_num == 3:

#调用技能伤害

self.attack3_boss(boss)

else:

#调用普通伤害

self.attack1_boss(boss)

#普通伤害

def attack1_boss(self,boss):

# 伤害值增加随机浮动伤害值

rand_damge = random.randint(1, 99)

boss.hp -= (self.damage + rand_damge)

print("英雄:%s 攻击Boss:%s 伤害值:%d Boss剩余生命值:%d"

% (self.name, boss.name, self.damage + rand_damge, boss.hp))

#暴击伤害

def attack2_boss(self,boss):

# 伤害值增加随机浮动伤害值

rand_damge = random.randint(1, 99)

boss.hp -= (self.damage + rand_damge)*2

print("英雄:%s 攻击Boss:%s \033[1;31m暴击伤害值:%d\033[0m Boss剩余生命值:%d"

% (self.name, boss.name, (self.damage + rand_damge)*2, boss.hp))

#技能伤害

def attack3_boss(self,boss):

boss.hp -= self.skillQ.skillDamage

print("英雄:%s 攻击Boss:%s \033[1;34m技能伤害值:%d\033[0m Boss剩余生命值:%d"

% (self.name, boss.name, self.skillQ.skillDamage, boss.hp))

class Boss():

def __init__(self, name, hp, damage):

self.name = name

self.hp = hp

self.damage = damage

# 英雄攻击boss的方法,boss做参数,传进来

def attack_hero(self, hero):

rand_damge = random.randint(1, 50)

hero.hp -= (self.damage+rand_damge)

print("Boss:%s 攻击英雄:%s 伤害值:%d 英雄剩余生命值:%d"

% (self.name, hero.name, self.damage+rand_damge, hero.hp))

#创建技能类

class Skill():

def __init__(self,skillName,skillDamage):

self.skillName = skillName

self.skillDamage = skillDamage

count = 1

#创建技能对象

skillQ = Skill('当头一棒',300)

#创建英雄

hero1 = Hero('至尊宝',1000,20,skillQ)

#创建Boss

boss1 = Boss('白晶晶',3000,5)

while True:

print("------------------【round%d】-----------------"%count)

if hero1.hp > 0:

hero1.attack_boss(boss1)

if boss1.hp <= 0:

print("至尊宝获胜")

break

if boss1.hp > 0:

boss1.attack_hero(hero1)

if hero1.hp <= 0:

print("晶晶获胜")

break

count += 1

time.sleep(0.8)

print('\n'*5)

控制台截图

over......

python回合制游戏教程_Python基础之面向对象(回合制游戏)相关推荐

  1. python中四种进制的输出_Python基础语法和进制

    基础语法 开发种常用的快捷键 键位 功能 ctrl + / 添加注释和取消注释 ctrl + s 保存 ctrl + c 复制 ctrl + v 粘贴 ctrl + x 剪切 ctrl + z 撤销 ...

  2. python拍7游戏代码_Python基础语法-7(小游戏)

    代码太长?内容太复杂? 不用担心!往下看↓ 知道为什么python简洁,省力么? 就是因为python有很多写好的工具箱可以直接调用,我们只要开头给一个命令,在我们的代码 就可以直接使用它的功能了,这 ...

  3. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  4. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  5. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  6. python打地鼠游戏教程_Python入门小游戏,炫酷打地鼠教程第二部分,都是干货

    还记得那位玩打地鼠小游戏,然后学会python的女白领吗? 那份教程还没有写完,只写到了对游戏中精灵的定义,然后我们继续写. 实现了游戏精灵的定义后,我们就要开始展现真正的技术啦,也就是写主程序. 首 ...

  7. python开发游戏教程_Python开发星际游戏实例教程

    这篇文章主要为大家详细介绍了Python外星人入侵游戏编程完整的实现思路,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PYTHON游戏编程外星人入侵的完整实现思路,具体内容如下 准备工作:下载p ...

  8. python web游戏实例_python实现的简单文本类游戏实例

    Python应用与实践 Python应用与实践 目录 1.      Python是什么? 1.1.      Python语言 1.2.      Python哲学 2.      Python在工 ...

  9. python井字棋小游戏代码_python实现井字棋小游戏

    本文为大家分享了python实现井字棋小游戏,供大家参考,具体内容如下 周五晚上上了python的选修课,本来以为老师是从python的基础语法开始的,没想到是从turtle画图开始,正好补上了我以前 ...

最新文章

  1. 业内大牛送给计算机方向学生的7个实用建议!
  2. CentOS 6.0安装VNC Server
  3. 小x的质数(线性O(n)筛素数)
  4. [SOJ] connect components in undirected graph
  5. 皮卡丘为什么不进化_精灵宝可梦:进化后反而变弱的精灵!皮卡丘:知道我为什么不进化了?反而会变弱!...
  6. 32 bit 与 64 bit 程序(2)比较
  7. 数据结构实验之排序三:bucket sort
  8. oracle 客户端连接数_转载:查看Oracle连接数
  9. 前端怎么画三角形_WEB前端-CSS三角形绘制方法
  10. mysql s.`name`_MySQL的基础操作命令
  11. 中英文对照 —— 手机 App/PC 端软件(系统)、互联网
  12. LeetCode解题思路—快慢指针
  13. 网站服务器停止运行,服务器已停止响应是怎么回事
  14. 基于中科院-CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征MATLAB源码介绍
  15. 乐有家携手法大大,实现租房签约数字化
  16. 同花顺-图像算法工程师-笔试题
  17. 元学习入门:MAML
  18. LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码
  19. 为什么我从PR里面导出来的视频,在电脑上播放是正常的,微信发给朋友后,形状就变了,扭曲了一样的
  20. 多种ubuntu引导修复方法

热门文章

  1. 苏州大学9月计算机考试试题,苏州大学计算机组成题库 (9)
  2. HTML文字加粗、下划线、倾斜、删除线:文本格式化标签
  3. 资源| 电子书库-永久有效,持续更新!
  4. 22春天津大学《工程地质学》在线作业一
  5. 深入浅出matplotlib(98):一条曲线多种颜色显示
  6. 全球及中国无线储罐计量器行业产销前景及运营动态研究报告2021-2027年版
  7. 每日新闻:中国母婴幼市场将达3万亿;基于内存计算技术的智能芯片问世;谷歌推图片压缩工具Squoosh;腾讯选定全球地图数据提供商...
  8. MMOCR windows安装问题:Could not build wheels for lanms-neo,which is required to install pyproject...
  9. python基础四_01_面向对象
  10. Dell Inspiron 15 5000 series 设置u盘启动