python面向对象设计角色攻击_Python技能:面向对象基础实战之英雄联盟

原标题:Python技能:面向对象基础实战之英雄联盟

定义锐雯类

1a63dca2c1b741531673e8fa5d05a00b.png

68e3d52b45697a95efa2f2b3e0d237a0.png

class Riven:

camp = 'Noxus' # 所有玩家的英雄(锐雯)的阵营都是Noxus;

def __init__(

self,

nickname,

aggressivity=54, # 英雄的初始攻击力54;

life_value=414,

money=1001,

armor=3):

self.nickname = nickname # 为自己的锐雯起个别名;

self.aggressivity = aggressivity # 英雄都有自己的攻击力;

self.life_value = life_value # 英雄都有自己的生命值;

self.money = money

self.armor = armor

def attack(self, enemy): # 普通攻击技能,enemy是敌人;

damage_value = self.aggressivity - enemy.armor # 根据自己的攻击力,攻击敌人就减掉敌人的生命值。

enemy.life_value -= damage_value

定义盖伦类

6a9c77f413e2030c0802ade59ce92689.png

40cb52924569af35de2018a40d17dac9.png

class Garen: # 定义英雄盖伦的类,不同的玩家可以用它实例出自己英雄;

camp = 'Demacia' # 所有玩家的英雄(盖伦)的阵营都是Demacia;

def __init__(

self,

nickname,

aggressivity=58, # 英雄的初始攻击力58...;

life_value=455,

money=100,

armor=10):

self.nickname = nickname # 为自己的盖伦起个别名;

self.aggressivity = aggressivity # 英雄都有自己的攻击力;

self.life_value = life_value # 英雄都有自己的生命值;

self.money = money

self.armor = armor

def attack(self, enemy): # 普通攻击技能,enemy是敌人;

damage_value = self.aggressivity - enemy.armor # 根据自己的攻击力,攻击敌人就减掉敌人的生命值。

enemy.life_value -= damage_value

定义装备类

198444dbbe299e20de8bb1ecea0aa89c.png

class BlackCleaver:

def __init__(self, price=475, aggrev=9, life_value=100):

self.price = price

self.aggrev = aggrev

self.life_value = life_value

def update(self, obj):

obj.money -= self.price #减钱

obj.aggressivity += self.aggrev #加攻击

obj.life_value += self.life_value #加生命值

def fire(self, obj): #这是该装备的主动技能,喷火,烧死对方

obj.life_value -= 1000 #假设火烧的攻击力是1000

交互

r1 = Riven('草丛伦')

g1 = Garen('盖文')

b1 = BlackCleaver()

print(r1.aggressivity, r1.life_value, r1.money) #r1的攻击力,生命值,护甲

if r1.money > b1.price:

r1.b1 = b1

b1.update(r1)

print(r1.aggressivity, r1.life_value, r1.money) #r1的攻击力,生命值,护甲

print(g1.life_value)

r1.attack(g1) #普通攻击

print(g1.life_value)

r1.b1.fire(g1) #用装备攻击

print(g1.life_value) #g1的生命值小于0就死了

54 414 1001

63 514 526

455

402

-598

按照这种思路一点一点的设计类和对象,最终你完全可以实现一个对战类游戏。

责任编辑:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值