美文网首页
反恐精英

反恐精英

作者: qjh_py | 来源:发表于2020-07-19 19:32 被阅读0次

目录

  1. 基本信息
  2. 参考代码

1. 基本信息

  1. 人类
  • 属性
    姓名
    血量
    持有的枪
  • 方法
    安子弹
    安弹夹
    拿枪(持有抢)
    开枪
  1. 子弹类
  • 属性
    杀伤力
  • 方法
    伤害敌人(让敌人掉血)
  1. 弹夹类
  • 属性
    容量(子弹存储的最大值)
    当前保存的子弹
  • 方法
    保存子弹(安装子弹的时候)
    弹出子弹(开枪的时候)
  1. 枪类
  • 属性
    弹夹(默认没有弹夹,需要安装)
  • 方法
    连接弹夹(保存弹夹)
    射子弹

2. 参考代码:

  • 不完善:血量等问题。。。
    创建对象:
# 反恐精英_1
class Person:
    def __init__(self, name, gun=None, cartridge=None, bullet_s=None):
        self.name = name
        self.ph = 100
        self.gun = gun
        self.cartridge = cartridge
        self.bullet_s = bullet_s

    def install_bullet(self, num):
        # 安装子弹
        for i in range(num):
            if not self.bullet_s:
                print('%s的子弹库没子弹了!' % self.name)
                break
            elif len(self.cartridge.zidan_list) == self.cartridge.max_num:
                break
            else:
                self.cartridge.baocun(self.bullet_s.pop())

    def install_cartridge(self):
        # 安装弹夹
        self.gun.baocun(self.cartridge)

    def __str__(self):
        if self.gun:
            return '%s的ph为:%d,他有一把%s,%s,%s' % (self.name, self.ph, self.gun.name, self.gun, self.cartridge)
        else:
            return '%s的ph为:%d, 他没有枪...' % (self.name, self.ph)

    def kai_qiang(self, diren):
        self.gun.fire(diren)

    def diaoxue(self, sha_shang_li):
        if self.ph >= 0:
            self.ph -= sha_shang_li
        else:
            self.ph = 0


class Gun(object):
    def __init__(self, new_name):
        self.name = new_name
        self.danjia = None

    def baocun(self, danjia_temp):
        self.danjia = danjia_temp

    def __str__(self):
        if self.danjia:
            return "%s已安装了弹夹" % self.name
        else:
            return "%s没有安装弹夹" % self.name

    def fire(self, di_ren):
        # 从弹夹中拿出一个子弹
        zidan_temp = self.danjia.tanchu_zidan()
        if zidan_temp:
            # 让子弹去伤害敌人
            zidan_temp.shanghai(di_ren)
        else:
            print("%s的弹夹没子弹了,请安装子弹" % self.name)


class Danjia(object):
    def __init__(self, new_max_num):
        self.max_num = new_max_num
        self.zidan_list = []

    def baocun(self, zidan_temp):
        if len(self.zidan_list) < self.max_num:
            self.zidan_list.append(zidan_temp)
        else:
            print('弹夹已满,装不进去了!!!')

    def __str__(self):
        return "弹夹:%d/%d" % (len(self.zidan_list), self.max_num)

    def tanchu_zidan(self):
        if len(self.zidan_list) > 0:
            return self.zidan_list.pop()
        else:
            return None


class Bullet(object):
    def __init__(self, new_shashangli):
        self.shashangli = new_shashangli

    def shanghai(self, di_ren):
        di_ren.diaoxue(self.shashangli)

    def __str__(self):
        return '一颗子弹的杀伤力为:%d' % self.shashangli

实例化对象并CS

# 反恐精英_2
from 练习.反恐精英_1 import *

print('创建两个要CS的人')
qjh = Person(name='乔')
lqh = Person(name='刘')
print(qjh)
print(lqh)

print('\n创建两把枪')
ak47_1 = Gun('AK47_1')
ak47_2 = Gun('AK47_2')
print(ak47_1)
print(ak47_2)

print('\n创建两个弹夹')
dan_jia_1 = Danjia(20)  # 表示最多容纳20发子弹
dan_jia_2 = Danjia(20)  # 表示最多容纳20发子弹
print(dan_jia_1)
print(dan_jia_2)

print('\n创建两个子弹仓库和子弹')
bullet_s1 = [Bullet(10) for i in range(25)]  # 10表示每颗子弹的杀伤力
bullet_s2 = [Bullet(10) for j in range(19)]
print(bullet_s1[0])

print('\n给两个要CS的人加装备')
qjh.gun = ak47_1
qjh.cartridge = dan_jia_1
qjh.bullet_s = bullet_s1
lqh.gun = ak47_2
lqh.cartridge = dan_jia_2
lqh.bullet_s = bullet_s2
print(qjh)
print(lqh)

print('\n两个人安装子弹')
qjh.install_bullet(18)
lqh.install_bullet(2)
print(qjh)
print(lqh)

print('\n两个人安装弹夹')
qjh.install_cartridge()
lqh.install_cartridge()
print(qjh)
print(lqh)

print('\nqjh再安装几颗子弹')
qjh.install_bullet(4)
print(qjh)
print(lqh)

print('\n来吧,互相伤害啊!!!')
for i in range(4):
    qjh.kai_qiang(lqh)
    lqh.kai_qiang(qjh)
print(qjh)
print(lqh)

print('\nlqh再安装几颗子弹')
lqh.install_bullet(20)
print(qjh)
print(lqh)

print('\n来啊,继续互相伤害啊!!!')
for i in range(20):
    qjh.kai_qiang(lqh)
    lqh.kai_qiang(qjh)
print(qjh)
print(lqh)

相关文章

网友评论

      本文标题:反恐精英

      本文链接:https://www.haomeiwen.com/subject/iierkktx.html