Python—实操小实验之人机PK游戏(终极版本—应用类与对象的知识点应用)

Python—实操小实验之人机PK游戏(终极版本—应用类与对象的知识点应用)


人机PK游戏所需要的基础元素如下:
①要有玩家、敌人、生命值、攻击力,还要有计分;
②要可以互相进行攻击,攻击之后生命值要相应的减少;
③最后依据分数分出胜负结果。

终极版本中:
主要用到的知识点是:将函数进行封装打包,成为类;
不同角色的属性要有所差异,角色之间增加相互克制的类方法;
当玩家输入角色出场顺序时有误,要提醒玩家重新输入;
仍然与初级版本一样,对战,计分,分胜负。

#导入必要的包
import random
import time

#创建一个类来实例化具体的游戏角色
class Role():
    def __init__(self,name):
        self.name = name
        self.life = random.randint(100,150)
        self.attack = random.randint(30,50)

#运用继承创造子类,实例化3个不同的角色类型
class Knight(Role):
    def __init__(self,name = '【圣光骑士】'):
        Role.__init__(self,name)
        self.life = int(self.life*1.5)          #对指定角色加属性值
        self.attack = int(self.attack*0.8)
        
    def fight_buff(self,opponent,str1,str2):        #设定角色的克制关系
        if opponent.name =='【暗影刺客】':           #如果遇到暗影刺客,那么攻击在原基础上再增加1.5倍
            self.attack = self.attack*1.5
            print('{}【圣光骑士】对{}【暗影刺客】有压制作用'.format(str1,str2))
            
class Assassin(Role):
    def __init__(self,name = '【暗影刺客】'):
        Role.__init__(self,name)
        self.life = int(self.life*0.8)
        self.attack = int(self.attack*1.5)
        
    def fight_buff(self,opponent,str1,str2):
        if opponent.name =='【精灵弩手】':
            self.attack = self.attack*1.5
            print('{}【暗影刺客】对{}【精灵弩手】有压制作用'.format(str1,str2))
            
class Bowman(Role):
    def __init__(self,name = '【精灵弩手】'):
        Role.__init__(self,name)
        self.life = int(self.life*1.2)
        self.attack = int(self.attack*1.2)
        
    def fight_buff(self,opponent,str1,str2):
        if opponent.name =='【圣光骑士】':
            self.attack = self.attack*1.5
            print('{}【精灵弩手】对{}【圣光骑士】有压制作用'.
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值