1.什么是对象?什么是类?

​ 对象是特征和功能的结合体

​ 类是一系列对象相同的特征和技能的集合体

2.绑定方法的有什么特点

​ 绑定方式是由对象来调用类内部的函数,特点是会把对象当作第一个参数传入函数内,不用额外传参数

3.基于面向对象设计一个对战游戏

import random
import time
class Yasso:
    camp = 'lonia'
    def __init__(self,name):
        self.name = name
        self.atk = 48
        self.armor = 15
        self.health = 430
        self.money = 1200

    def attack(self, zed):
        damage = self.atk - zed.armor
        zed.health -= damage
        print(f'''{self.name}攻击了{zed.name},伤害:-{damage}
                {zed.name}剩余血量:{zed.health}\n''')
        if zed.health <= 0:
            return True

class Zed:
    camp = 'shadow'
    def __init__(self,name):
        self.name = name
        self.atk = 49
        self.armor = 17
        self.health = 445
        self.money = 1200

    def attack(self, yasso):
        damage = self.atk - yasso.armor
        yasso.health -= damage
        print(f'''{self.name}攻击了{yasso.name},伤害:-{damage}
        {yasso.name}剩余血量:{yasso.health}\n''')
        if yasso.health <= 0:
            return True

class Belt:
    weapon_type = 'defence'
    def __init__(self,name):
        self.name = name
        self.price = 1000
        self.health = 380

    def equip(self,obj):
        obj.money -= self.price
        obj.health += self.health

class BigSword:
    weapon_type = 'attack'
    def __init__(self,name):
        self.name = name
        self.price = 1200
        self.atk = 60

    def equip(self,obj):
        obj.money -= self.price
        obj.atk += self.atk

wick = Zed('火影劫')
tank = Yasso('快乐风男')
titan = Belt('巨人腰带')
storm = BigSword('暴风大剑')

print(f'''
玩家wick使用英雄{wick.name}
生命值:{wick.health}
攻击力:{wick.atk}
护甲:{wick.armor}
金币:{wick.money}\n''')
time.sleep(1.8)

print(f'''玩家tank使用英雄{tank.name}
生命值:{tank.health}
攻击力:{tank.atk}
护甲:{tank.armor}
金币:{tank.money}\n''')
time.sleep(1.8)

if wick.money >= storm.price:
    wick.storm = storm
    storm.equip(wick)
    print(f'{wick.name}购买了{storm.name}')
    time.sleep(1)

if tank.money >= titan.price:
    tank.titan = titan
    titan.equip(tank)
    print(f'{tank.name}购买了{titan.name}')
    time.sleep(1)

print(f'''
玩家wick使用英雄{wick.name}
生命值:{wick.health}
攻击力:{wick.atk}
护甲:{wick.armor}
金币:{wick.money}
装备:{wick.storm.name}\n''')
time.sleep(1.8)

print(f'''玩家tank使用英雄{tank.name}
生命值:{tank.health}
攻击力:{tank.atk}
护甲:{tank.armor}
金币:{tank.money}
装备:{tank.titan.name}\n''')
time.sleep(1.8)

while True:
    rand = random.randint(1,3)

    if rand == 1:

        res = wick.attack(tank)
        time.sleep(0.8)
        if res:
            print(f'''玩家wick使用{wick.name}很轻松的击杀了菜鸡玩家tank使用的{tank.name}''')
            break

    if rand == 2:

        res1 = tank.attack(wick)
        time.sleep(0.8)
        if res1:
            print(f'''玩家tank使用{tank.name}卑鄙无耻的侥幸击杀了玩家wick使用的{wick.name}''')
            break

day19作业的更多相关文章

  1. day19 作业

    今日作业 1.什么是对象?什么是类? 对象:特征和技能的结合体 类:一系列对象 相同的特征和技能的结合体 2.绑定方法的有什么特点 对象调用类内部的函数 称之为绑定方法,特点: 不同的对象调用该绑定方 ...

  2. Day19作业及默写

    三级菜单 menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车 ...

  3. 20 Python 常用模块

    collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...

  4. python day19 : 购物商城作业,进程与多线程

    目录 python day 19 1. 购物商城作业要求 2. 多进程 2.1 简述多进程 2.2 multiprocessing模块,创建多进程程序 2.3 if name=='main'的说明 2 ...

  5. Spark Streaming揭秘 Day19 架构设计和运行机制

    Spark Streaming揭秘 Day19 架构设计和运行机制 今天主要讨论一些SparkStreaming设计的关键点,也算做个小结. DStream设计 首先我们可以进行一个简单的理解:DSt ...

  6. day19<异常&File类>

    异常(异常的概述和分类) 异常(JVM默认是如何处理异常的) 异常(try...catch的方式处理异常1) 异常(try...catch的方式处理异常2) 异常(编译期异常和运行期异常的区别) 异常 ...

  7. python 作业

    Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...

  8. day20模块作业

    1.模块化作业 1.回顾文件递归遍历. 默写一遍. 入口在: 当文件是个文件夹的时候 出口在: 文件是一个文件 2.计算时间差(用户输入起始时间和结束时间. 计算时间差(小时), 例如, 用户输入20 ...

  9. python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)

    类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...

随机推荐

  1. JAVA知识点总结(五)(常用类)

    第十八章:常用类 一.main方法解读: public static void main(String[] args) //当点击运行时,JVM会自动调用main方法 //public: 被JVM调用 ...

  2. QTP8.2--安装流程

    一.安装说明: 1.进入安装文件夹,运行QTP8.2安装文件setup,进入安装向导后直接单击“QuickTest Professional 安装”选项,由于破解文件存在缺陷,所以请不要改变安装路径c ...

  3. 程序员写 2000 行 if else?领导:这个锅我不背

    前言 知乎上有小伙伴提了这么一个问题,如何看待陕西省普通话水平测试成绩查询系统?查询系统前端代码就直接给出了身份账号,姓名,证书编号,如果信息是真的,就泄露了这么多考生的信息,白给那种.为什么会发生这 ...

  4. js禁止刷新的简单方法

    //禁止用F5键  这个是键盘按下时触发document.onkeydown = function() { if ( event.keyCode==116) {event.keyCode = 0; e ...

  5. Autofac的AOP面向切面编程研究

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  6. docker 运行容器时指定--sysctl参数来设置系统参数

    指定--sysctl参数来设置系统参数,通过这些参数来调整系统性能,Docker通过一个 ValidateSysctl函数来限制 sysctl参数可以传入的项,源码如下: // docker/opts ...

  7. 不吹不黑,今天我们来聊一聊 Kubernetes 落地的三种方式

    作者 | 王国梁  Kubernetes 社区成员与项目维护者原文标题<Kubernetes 应用之道:让 Kubernetes落地的"三板斧">,首发于知乎专栏:进击 ...

  8. pywintypes.com_error: (-2147352567, '发生意外 解决方案

    在使用win32com处理Excel的时候,遇到pywintypes.com_error: (-2147352567 错误. 百度.Google各种方法不得其解,和以下网页类似——http://blo ...

  9. ELK 学习笔记之 elasticsearch elasticsearch.yml配置概述

    elasticsearch.yml配置概述: 设置集群名字 cluster.name 定义节点名称 node.name 节点作为master,但是不负责存储数据,只是协调. node.master: ...

  10. web前端之移动端:知识汇

    移动前端自适应适配方法总结 移动端前端适配方案(总结) -- 面试重点 不要再问我移动适配的问题了 一.响应式布局: // Extra small devices (portrait phones, ...