Team Work Ⅲ
Regal-Lighting团队设计
分工思考
本次大作业我的分工定位是:Unit及子类,主要设计实现建筑类的功能。
在上一篇博客我介绍了我的继承方案和接口设定,这一篇粗略的介绍一下实现部分
Defender_Tower
防御塔类,由于Unit基类内的大部分接口都是可用的,所以只要在构造函数上下功夫并且实现破坏的条件设定就行。
对于构造函数,由于单位类内已经有相关的接口已经实现可以直接对一些数据进行改动,具体代码如下
Defender::Defender(int x, int y, int _side, int Area) : Building(x, y) {
setSide(_side);
setAttackArea(Area);
setName("Defender_tower");
setBaseHp(500);
setEffectiveHp(0);
setBaseAttack(60);
setEffectiveAttack(0);
}
对于破坏函数,我不太清楚为什么Building类定义的是void类型,可能leader有他自己的实现方法,所以我就只按设计文档的要求,调用setBaseAttack(0)将基础攻击设置为0。
Star
水晶类,判断游戏胜负的关键单位同样可以利用Unit基类的接口进行进一步的拓展(其实又是只要定义构造函数就可以了。。。)
Star::Star(int x, int y, int _side, int Area) {
setSide(_side);
setAttackArea(Area);
setName("Star_tower");
setBaseHp(300);
setEffectiveHp(0);
setBaseAttack(0);
setEffectiveAttack(0);
}
对于破坏判断的函数,emmm找不到leader定义的判断游戏胜负的接口啊,先留着吧。
Spring
泉水类,与防御塔不同,泉水是回复型建筑,但是可以看成“逆向输出”,将基础伤害调为负值,阵营逆向
Spring::Spring(int x, int y, int _side, int Area) {
if(_side == 1)
setSide(2);
else setSide(1);
setAttackArea(Area);
setName("Spring");
setBaseHp(1e9);
setEffectiveHp(1e9);
setBaseAttack(-30);
setEffectiveAttack(0);
}
由于泉水不可破坏,所以对于破坏的虚函数直接定义为空即可。
收获与反思
这次编程首次尝到了面向对象编程的甜头,把所有的建筑看成一类,使用的时候只要按照这个类进行生成就行,非常的方便,整个敲码时间甚至没有了解队友代码的时间长。但是这也充分的说明了我们的弱点,队员们的沟通出现了非常多的问题,很多交叉的API没有商量清楚,导致很多情况下无从下手。
Team Work Ⅲ的更多相关文章
- Configure a VLAN on top of a team with NetworkManager (nmcli) in RHEL7
SOLUTION VERIFIED September 13 2016 KB1248793 Environment Red Hat Enterprise Linux 7 NetworkManager ...
- Create a Team in RHEL7
SOLUTION VERIFIED September 13 2016 KB2620131 Environment Red Hat Enterprise Linux 7 NetworkManager ...
- Team Leader 你不再只是编码, 来炖一锅石头汤吧
h3{ color: #000; padding: 5px; margin-bottom: 10px; font-weight: bolder; background-color: #ccc; } h ...
- Configure bridge on a team interface using NetworkManager in RHEL 7
SOLUTION IN PROGRESS February 29 2016 KB2181361 environment Red Hat Enterprise Linux 7 Teaming,Bridg ...
- BZOJ 4742: [Usaco2016 Dec]Team Building
4742: [Usaco2016 Dec]Team Building Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 21 Solved: 16[Su ...
- 关于 feature team 的一些内容
矩阵式管理,是常见的经典管理架构.其最早起源于美国的航空航天部门,然后被美国人带到了日本,然后被日本人带到了台湾,然后台湾人带到大陆...矩阵管理最典型的特征是,组织架构按职能与专业划分,项目由跨越部 ...
- 病毒四度升级:安天AVL Team揭露一例跨期两年的电信诈骗进化史
自2014年9月起,安天AVL移动安全团队持续检测到一类基于Android移动平台的间谍类病毒,病毒样本大多伪装成名为"最高人民检察院"的应用.经过反编译逆向分析以及长期的跟踪调查 ...
- iOS 真机测试时报错:Provisioning profile "iOS Team Provisioning Profile: XXX” doesn't include the currently selected device “XXX”.
这几天因工作需要,去给客户演示iOS项目打包的过程.之前演示都是顺利的,但后来客户自己操作时打电话说遇到了问题,出现报错. 就过去看了一下,发现一个很陌生的错误提示: The operation co ...
- diff/merge configuration in Team Foundation - common Command and Argument values - MSDN Blogs
One of the extensibility points we have in Team Foundation V1 is that you can configure any other di ...
- 测试环境搭建心得 vs2008+SQL2008 PHP+APACHE+mysql Team Foundation Server2013
大四即将结束,大学的最后一个假期,找到一份实习工作,担任测试工程师.在过年前的最后一周入职,干了一周的活儿.主要工作就是搭建测试环境. VMware 主要熟悉VMware软件,装系统基本都没什么问题. ...
随机推荐
- 使用babel
1).Babel支持NPM包形式的安装,打开命令行窗口,切换到项目根目录,命令如下 npm install babel-cli 2).安装成功后,在package.json文件里添加如下代码 &quo ...
- Node调试
之前调试node代码简单粗暴,直接在代码打印日志,控制台观察日志,效率低下~ 原来后端node代码也可以通过Chrome断点调试,以下是调试方法. (1)找到node启动的进程 ps aux|grep ...
- Flume(1)-概述与组成架构
一. 定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统.Flume基于流式架构,灵活简单. 二. 优点 1. 可以和任意集中式存储进程集成. 2. ...
- [Golang学习笔记] 04 程序实体1 变量声明
变量声明: Go语言的程序实体包含:变量.常量.函数.结构体和接口,是一门静态类型的编程语言. (在声明变量或常量的时候,需要指定类型,或者给予足够信息是的Go语言能够推导出类型) Go语言变量的类型 ...
- Docker CPU Usage
背景 当一台机器上跑有多个 Docker Container 的时候,我们需要知道,哪些容器占用了多少资源.采集这些指标,来让我们可以更加好的分配资源给每个 Container. 获取容器CPU使用率 ...
- 20145234黄斐《网络对抗技术》实验五,MSF基础应用
MSF的六种模块 渗透攻击模块(Exploit Modules)渗透攻击是指由攻击者或渗透测试者利用一个系统.应用或服务中的==安全漏洞==,所进行的攻击行为. 辅助模块(Auxiliary Modu ...
- BZOJ054_移动玩具_KEY
题目传送门 这道题我写IDA*写挂了,TLE+WA,只AC了两个点. 这道题标算BFS+状态压缩. code: /******************************************* ...
- PHP 0817PHP 0817 (PHP, Exploit) writeup
作为一只ctf小白,这个题看到之后真是丝毫没有思路.虽然能基本理解php,但还是没能顺利答出,最后直接进行了搜索. 虽然做技术,“固执”是优点.但是出于对自身自身情况的了解,我觉得现阶段看题解还是很有 ...
- bzoj4998 星球联盟
bzoj4998 星球联盟 原题链接 题解 先按照输入顺序建一棵树(森林),然后用一个并查集维护联盟的关系,对于不是树上的边\(a-b\),就把\(a-lca(a,b),b-lca(a,b)\)全部合 ...
- jquery.validate使用 - 3
自定义jquery-validate的验证行为 1: 自定义表单提交 设置submitHandler来自定义表单提交动作 $(".selector").validate({ ...