Python3 类与对象之王者荣耀对战小游戏
王者荣耀对战小游戏
# 定义英雄: 亚瑟
class Arthur:
hero_type = 'Tank'
def __init__(self, attack_value=164, armor=98, life_value=3622, money=1000):
self.attack_value = attack_value
self.armor = armor
self.life_value = life_value
self.money = money
# 普攻
def attack(self, enemy):
damage_value = self.attack_value - enemy.armor
enemy.life_value -= damage_value
# 定义英雄: 鲁班七号
class LubanN07:
hero_type = 'ADC'
def __init__(self, attack_value=174, armor=88, life_value=3401, money=1000):
self.attack_value = attack_value
self.armor = armor
self.life_value = life_value
self.money = money
# 普攻
def attack(self, enemy):
damage_value = self.attack_value - enemy.armor
enemy.life_value -= damage_value
# 定义装备: 暗影战斧
class ShadowBattleAxe:
def __init__(self, price=500, attack_value=85, armor=50, life_value=400):
self.price = price
self.attack_value = attack_value
self.armor = armor
self.life_value = life_value
def update(self, obj):
obj.money -= self.price # 减钱
obj.attack_value += self.attack_value # 加攻击
obj.armor += self.armor # 加防御
obj.life_value += self.life_value # 加生命值
# 装备的主动技能
def fire(self, obj):
damage_value = 1000 - obj.armor # 火焰攻击为1000
obj.life_value -= damage_value
DBJ = Arthur()
XLB = LubanN07()
AXE = ShadowBattleAxe()
print('DBJ:', DBJ.hero_type, DBJ.attack_value, DBJ.armor, DBJ.life_value)
print('XLB:', XLB.hero_type, XLB.attack_value, XLB.armor, XLB.life_value)
while True:
# 装备可多次购买
if XLB.money >= AXE.price:
# 装备提升属性
AXE.update(XLB)
XLB.AXE = AXE
# 普攻
XLB.attack(DBJ)
# 装备技能伤害
XLB.AXE.fire(DBJ)
print(f'XLB attacked DBJ! life value of DBJ: {DBJ.life_value}')
if DBJ.life_value <= 0:
print('XLB WIN!')
break
# 普攻
DBJ.attack(XLB)
print(f'DBJ attacked XLB! life value of XLB: {XLB.life_value}')
if XLB.life_value <= 0:
print('DBJ WIN!')
break
DBJ: Tank 164 98 3622
XLB: ADC 174 88 3401
XLB attacked DBJ! DBJ life value: 2559!
DBJ attacked XLB! XLB life value: 3775!
XLB attacked DBJ! DBJ life value: 1411!
DBJ attacked XLB! XLB life value: 4199!
XLB attacked DBJ! DBJ life value: 263!
DBJ attacked XLB! XLB life value: 4223!
XLB attacked DBJ! DBJ life value: -885!
XLB WIN
Python3 类与对象之王者荣耀对战小游戏的更多相关文章
- PYTHON-面向对象-练习-王者荣耀 对砍游戏
# 王者荣耀 对砍游戏# 两个英雄可以对砍 如果血量小于等于0 就GG# 所需的对象# 英雄对象""" 亚瑟 属性 类型 血量 名称 技能 Q 跳起来给你一刀 伤害50 ...
- python3 类、对象的基础概念
类:具有相同特性和方法的抽象概念称为类 对象:从类中具体描述的一个事物称为对象 类和对象的关系:类是对象的抽象概念,对象是类的具体实例 class test001: #创建类 def __init__ ...
- java类与对象的动手动脑和其他小问题
在Java中,我们可以通过组合一私有字段和一对get/set方法来定义一个属性.私有的变量,共有的方法. package sample; /** * 自定义Java类的示例 */ class MyCl ...
- Python3 类与对象
目录 面向对象基础 面向过程编程 面向对象编程 类 什么是类 如何定义类 类的基本操作 对象 实例化对象 对象添加特有属性 对象与类的查找顺序 对象的绑定方法 面向对象基础 面向过程编程 面向过程的核 ...
- 屏幕坐标和世界坐标的转换+对象池技术(3D打地鼠小游戏)
游戏中可能经常会遇到需要某个物体跟着鼠标移动,然后又需要把物体放在某个鼠标指定的位置 实现方式 Camera.main.WorldToScreenPoint Camera.main.ScreenToW ...
- python3.x 类和对象
python同样支持类和对象.在python3.x中没有了经典类,只有新式类,默认创建的就是新式类.具体的新式类与经典类的不同在python3.x中已经没有意义了. 类的定义和实例化 python定义 ...
- (08)-Python3之--类和对象
1.定义 类:类是抽象的,一类事物的共性的体现. 有共性的属性和行为. 对象:具体化,实例化.有具体的属性值,有具体做的行为. 一个类 对应N多个对象. 类包含属性以及方法. class 类名: 属 ...
- python 面向对象之封装与类与对象
封装 一,引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,小老虎一起装进麻袋,然后把麻袋封上口子.照这种逻辑看,封装='隐藏',这种理解是相当片面的 二,先看如何隐藏 在 ...
- 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍
在国内,如果你没有听说过<王者荣耀>,那你一定是古董级的人物了. <王者荣耀>(以下简称“农药”),专注于移动端(Android.IOS)的MOBA游戏.笔者看到这么火爆,就萌 ...
随机推荐
- PHP 核心特性 - 匿名函数
提出 在匿名函数出现之前,所有的函数都需要先命名才能使用 function increment($value) { return $value + 1; } array_map('increment' ...
- mysql出现ERROR 1819 (HY000)的解决方法
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements, 出现这个问题怎么办? 为了加强安 ...
- lqb 基础练习 闰年判断
基础练习 闰年判断 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年. 当以下情况之一满足时,这一年是闰年: 1. 年份是4的倍数而不是100的倍 ...
- 虚拟机和容器docker
云计算中最主要的技术就是虚拟机,开源虚拟机已经kvm已经集成到Linux内核!针对虚拟机浪费资源(CPU.内存.存储等)较大的缺陷,google力推Docker容器和容器管理平台Kubernetes. ...
- Redis的存储类型、集群架构、以及应用场景
什么是redis redis是一种支持Key-Value等多种数据结构的存储系统.可用于缓存.事件发布或订阅.高速队列等场景.该数据库使用ANSI C语言编写,支持网络,提供字符串.哈希.列表.队列. ...
- CSS中选择器优先级与!important权重使用
CSS中的选择器优先级与!important权重使用 .class选择器要高于标签选择器. #id选择器要高于.class选择器. 标签选择器是优先级最低的选择器. !important的属性它的权重 ...
- toString() 方法的参数
除开null 和 undefined之外所有的数据类型都是拥有toString方法的. 通常情况下我们使用toString()方法的时候都是不用传递参数的,但是Number类型的toString方法是 ...
- 《手把手教你》系列练习篇之3-python+ selenium自动化测试(详细教程)
1. 简介 前面介绍了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介绍webdriver ...
- python中将xml格式转json格式
一.简介 在用python写脚本时,通常需要处理xml格式的文件或字符串.由于json格式处理的方便性, 我们可将其转为json格式进行处理. 二.步骤 1.安装工具包xmltodict 在命令行输入 ...
- 基于 HTML5 + WebGL 的宇宙 3D 展示系统
前言 近年来随着引力波的发现.黑洞照片的拍摄.火星上存在水的证据发现等科学上的突破,以及文学影视作品中诸如<三体>.<流浪地球>.<星际穿越>等的传播普及,宇宙空间 ...