iOS 三国杀 Ver.LOG
MOSAD hw1
代码概况
父类
父类属性/方法 类型/返回类型 描述 country String 国家 blood_value NS整形 血量 energy_value NS整形 法力值 attack NS整形 攻击力 name String 名字 armed NS整形 是否装备武器 flex NS整形 是否在闪避状态 poison NS整形 是否中毒 sheld NS整形 是否施加钝化 grand NS整形 是否进入超然状态 init(); instancetype 初始化英雄 PKOneUnit(); void 己方回合 get___(); - 返回对应值 managrow(); void 自然恢复法力值 poisioned(); void 中毒伤害清算 change__(,); void buff、他伤清算 weapon(); void 装备武器 skill(); void 小技能 ultimate(Hero*); void 终极技能 每个英雄都固有这些属性.
子类
由于具体实现的代码较繁杂,这里只给出子类的多态体现。
英雄 | weapon | skill | ultimate |
---|---|---|---|
吕布 | attack+= 200; armed = 1 | - | 500 damge ; energy_value -= 80 |
张飞 | - | blood_value += 200; energy_value -= 20 | blood_value -= 200; attack== 200; |
诸葛亮 | - | flex = 1; energy_value -= 20; //only for one turn | 400damage; blood_value += 200; |
曹操 | attack+= 200; armed = 1 | - | attack += 10;target.attack -= 10 ; energy_value -= 80 |
孙权 | - | attack += 5; blood_value += 200; energy_damge -= 20; | target.poisoned = 1 |
赵云 | attack+= 150; armed = 1 blood_value += 200 | - | grand = 1; poison = 0; energy_value -= 100; |
司马懿 | - | sheld = 1; energy_value -= 20 | 600 damge ; energy_value -= 50 |
孙策 | attack+= 100; armed = 1; blood_value += 300 | - | 400 damge ; energy_value -= 80; blood_value += 200; |
陈宫 | - | energy_value - = 30; blood_value += 300; | 600 damge ; energy_value -= 80; blood_value -= 300; |
张辽 | armed = 1; blood_value += 100; attack += 100 | - | attack *= 2; energy_value -= 90; |
基于父类,每一个子类都有不同的weapon、skill、ultimate,这里体现了多态与继承。
战斗机制
- 父类中包含一个PKOneUnit();
- 所有子类继承父类Hero的PKOneUnit();
- 在PKOneUnit()中,会对己方和敌方的当前状态进行结算,然后概率装备weapon以及发动skill和ultimate,其中skill、ultimate需要满足energy_value要求才可以发动。在PKOneUnit()执行完毕后,会得到一个双方的当前状态。在main函数中进行判断,若有一方先出现血量 <= 0 的情况, 则判定败北;另一种情况是回合数超过10,双方被判平手。
- 关于数据隐秘性、封装性,则体现在各个属性保存在父类当中,若需调用则必须使用对应的get_();函数,外界无法直接取得。
结果截图
iOS 三国杀 Ver.LOG相关推荐
- ios程序 调试log宏的添加
#ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_CURRENT_METHOD NSLog(@"%@-%@&q ...
- iOS App查看Log:通过iTunes获取真机沙盒中文件
1.Win电脑下载iTunes应用 2.打开iTunes应用,如下是默认页面 3.用数据线将ios手机与win电脑连接,转为如下页面 4.点击如下按钮 5.点击文件共享,选择测试的App,文档储存在右 ...
- iOS中 加强日志输出 开发技术总结
对于那些做后端开发的工程师来说,看LOG解Bug应该是理所当然的事,但我接触到的移动应用开发的工程师里面,很多人并没有这个意识,查Bug时总是一遍一遍的试图重现,试图调试,特别是对一些不太容易重现的B ...
- Swift 优雅的打印Log
iOS开发中Log打印是最为常见的调试方式,没有之一. Swift提供了两种打印方式 public func print(_ items: Any..., separator: String = de ...
- vue判断是Android还是ios手机
appSource() {const u = navigator.userAgent, app = navigator.appVersion;//const isAndroid = u.indexOf ...
- JS 判断客户端是iOS还是Android
通过浏览器的 navigator.userAgent 判断是Android还是IOS: 一.判断是Android还是iOS let u = navigator.userAgent; let isAnd ...
- 记一次移动端H5开发所遇到的问题与细节,以及ios兼容
第一次弄移动端H5项目开发,虽然是简单的页面展示,但也遇到了很多细节问题与兼容问题,尤其是h5视频标签video, 一.移动端禁止缩放 兼容 <meta name="viewport& ...
- iOS攻防 - (十三)基本工具的使用OpenSSH, iFile, MTerminal和syslogd
iOS攻防 - (十三)基本工具的使用OpenSSH, usbmuxd, iFile, MTerminal和syslogd 1. OpenSSH OpenSSH是一个远程安全登录的工具 在Cydia里 ...
- H5与原生安卓和ios交互
单独的一个完整的交互方法 // **支付方法** function goToPay(query) {console.log(query);var data = {'type': pay_type_co ...
- 移动端踩坑记---------ios下输入法遮挡input
移动端踩坑记---ios下输入法遮挡input 最近项目中遇到了一个比较严重移动端IOS下的Fixed兼容问题,网上也有很多人躺在这个问题上了,现在开始详细讨论一下这个问题. 现在我们先来看一 ...
最新文章
- Java创建多线程的三种方法
- 不是HR,Leader你会面试应聘者吗
- PyCharm-缩进 格式化代码
- 适当的Java堆大小的5个技巧
- 机器学习:样本集、验证集(开发集)、测试集
- 2.1、StopWatch 启动与停止(ok)
- 怎么隐藏php版本,Linux服务器中怎样隐藏PHP版本
- 墨卡托投影和高斯-克吕格 (Gauss-Krüger) 投影
- 莫斯密码加密与解密--python加密篇
- 《jdk8u源码分析》jvm.dll接口列表
- 前端html项目总结,前端实习项目总结一
- 浪曦大型企业门户综合项目的设计、实施与管理实地培训班隆重开班招生中……
- ad09只在一定范围内查找相似对象_AD09 常用快捷键
- HDU4730 We Love MOE Girls
- Xaml技术:浅析为什么说一个标签就是new一个对象?
- 华为数通笔记-PPP
- RAID 磁盘阵列与阵列卡
- matlab电机算法仿真,MATLAB电机仿真精华50例源代码
- 我们的秘密是绿色的!他喵的
- 三国演义java_三国演义之「策略模式」
热门文章
- ASCII码表字母大小写相差32的原因分析
- 亲自动手搭建微服务框架和测试环境-3-Redis
- 图计算论文笔记--SPARC: Self-Paced Network Representation for Few-Shot Rare Category Characterization
- AAAI-19录用论文
- 企业微信付款到零钱,全代码讲解,包含怎么加入商户证书
- 网站漏洞测试 关于webshell木马后门检测
- top n with ties
- 关于长江的题目_高中优秀议论文题目【高中关于长江的作文题目加优秀范文】...
- 试用蓝牙模块的一点经验整理(Part 3, 关于iBeacon功能 )
- 山东省第五届蓝桥杯 ///标题:史丰收速算//c/c++组