day19作业
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作业的更多相关文章
- day19 作业
今日作业 1.什么是对象?什么是类? 对象:特征和技能的结合体 类:一系列对象 相同的特征和技能的结合体 2.绑定方法的有什么特点 对象调用类内部的函数 称之为绑定方法,特点: 不同的对象调用该绑定方 ...
- Day19作业及默写
三级菜单 menu = { '北京': { '海淀': { '五道口': { 'soho': {}, '网易': {}, 'google': {} }, '中关村': { '爱奇艺': {}, '汽车 ...
- 20 Python 常用模块
collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...
- python day19 : 购物商城作业,进程与多线程
目录 python day 19 1. 购物商城作业要求 2. 多进程 2.1 简述多进程 2.2 multiprocessing模块,创建多进程程序 2.3 if name=='main'的说明 2 ...
- Spark Streaming揭秘 Day19 架构设计和运行机制
Spark Streaming揭秘 Day19 架构设计和运行机制 今天主要讨论一些SparkStreaming设计的关键点,也算做个小结. DStream设计 首先我们可以进行一个简单的理解:DSt ...
- day19<异常&File类>
异常(异常的概述和分类) 异常(JVM默认是如何处理异常的) 异常(try...catch的方式处理异常1) 异常(try...catch的方式处理异常2) 异常(编译期异常和运行期异常的区别) 异常 ...
- python 作业
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
- day20模块作业
1.模块化作业 1.回顾文件递归遍历. 默写一遍. 入口在: 当文件是个文件夹的时候 出口在: 文件是一个文件 2.计算时间差(用户输入起始时间和结束时间. 计算时间差(小时), 例如, 用户输入20 ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
随机推荐
- 深入探究js中的隐式变量声明
前两天遇到的问题,经过很多网友的深刻讨论,终于有一个相对可以解释的通的逻辑了,然后我仔细研究了一下相关的点,顺带研究了一下js中的隐式变量. 以下文章中提到的隐式变量都是指没有用var,let,con ...
- 死磕 java同步系列之终结篇
简介 同步系列到此就结束了,本篇文章对同步系列做一个总结. 脑图 下面是关于同步系列的一份脑图,列举了主要的知识点和问题点,看过本系列文章的同学可以根据脑图自行回顾所学的内容,也可以作为面试前的准备. ...
- java基础之读取文件方法大全
1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如 ...
- CSS 预处理语言之 Scss 篇
简介 1. Sass 和 Scss Sass 和 Scss 其实是同一种东西,我们平时都称之为 Sass:Scss 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强 ...
- GAN算法笔记
本篇文章为Goodfellow提出的GAN算法的开山之作"Generative Adversarial Nets"的学习笔记,若有错误,欢迎留言或私信指正. 1. Introduc ...
- [ASP.NET Core 3框架揭秘] 跨平台开发体验: Docker
对于一个 .NET Core开发人员,你可能没有使用过Docker,但是你不可能没有听说过Docker.Docker是Github上最受欢迎的开源项目之一,它号称要成为所有云应用的基石,并把互联网升级 ...
- eclipse中Tomcat version 9.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5, 6, 7, and 8 Web modules
eclipse中导入了一个别人的项目,运行时提示没有可以使用的服务器,如下: 查看了下项目属性设置中的服务器,还是提示没有可用服务器: 尝试对部署在已有服务器下的项目Add and Remove... ...
- 一个纯CSS实现的卡片翻转效果
先上代码 <div id="box"> <div class="front">正面</div> <div class= ...
- python编程基础之二十
字符串的其他常用方法: ord(char) # 返回char字符对应的码值,可以是中文字符 chr(x) # 输入一个unicode码,返回对应的字符 eval(str) # 将str 中的内容 ...
- CS184.1X 计算机图形学导论 第3讲L3V1
二维空间的变换 L3V1这一课主要讲了二维空间的变换,包括平移.错切和旋转. 缩放 缩放矩阵 使用矩阵的乘法来完成缩放 缩放矩阵是一个对角矩阵,对角线上的值对应缩放倍数 错切(shear) 错切可以将 ...