C+++团队项目设计

上传人:油条 文档编号:114524264 上传时间:2019-11-11 格式:DOC 页数:8 大小:99.50KB
返回 下载 相关 举报
C+++团队项目设计_第1页
第1页 / 共8页
C+++团队项目设计_第2页
第2页 / 共8页
C+++团队项目设计_第3页
第3页 / 共8页
C+++团队项目设计_第4页
第4页 / 共8页
C+++团队项目设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《C+++团队项目设计》由会员分享,可在线阅读,更多相关《C+++团队项目设计(8页珍藏版)》请在金锄头文库上搜索。

1、设计和实现回合制战斗系统Combat1 Soldier战士类1) Soldier的属性(protected作用域)最大生命 maxHP当前生命 HP最大体力maxSP当前体力SP攻击力 damage经验 exp等级 level姓名 name药瓶数量 drugNum2) Soldier的动作(public作用域)决策 makeDecision攻击 attack休息 rest吃药 takingDrug3) Soldier被创建后,maxHP和HP为100,maxSP和SP为100,damage为20,exp为0, level为1,drugNum为5;4) 每回合Soldier通过决策(makeDe

2、cision)来决定需要发出哪一个动作(攻击attack、休息rest或吃药takingDrug,注意每回合只能做其中一个动作)。请自行设计和调整每种动作发出的必要条件,例如:生命值若低于最大值的30%该回合就吃药,体力低于最大值的50%该回合就休息,生命力和体力都充足该回合就发起攻击,等等;5) 攻击(attack)敌人一次,体力(SP)减少10,经验(exp)增加5。敌人的生命值(HP)减去攻击方攻击力值(damage)的大小。敌人生命值(HP)减少到0时死去,如果敌人被自己打死,获得敌人身上的所有药瓶;6) 经验(exp)每增加20,等级(level)就提高1级,maxHP、maxSP、

3、damage分别增加20;Soldier, Wizard, Master升级后,当前HP,SP,MP和NP的值皆按比例(xx:MaxXX)增长,注意:不是升级后上述当前属性值就自动全满。例如:Wizard的 HP/MaxHP 50/100,升级后,HP/MaxHP调整为60/120。升级前HP:MaxHP比例为0.5,升级后MaxHP变成120,若要保持0.5的比例,HP自动调整为60。这种设定类似于魔兽争霸III。7) 休息(rest)一次,生命值(HP)、体力(SP)增加最大值的50%,但不要超过最大值。(例如,当前生命值是30,最大生命值是100,则吃药后的当前生命值为30+100*50

4、%=80。)8) 吃药(takingDrug),如果药瓶数量为0,不能吃药。吃药一次,药瓶数量减少1,生命值(HP)增加最大值的80%,但不能超过maxHP。2 Wizard巫师类,从Soldier类公有继承1) Wizard的属性(protected作用域)新增的属性:最大魔法值 maxMP当前魔法值 MP2) Wizard的动作(public作用域)决策 makeDecision攻击 attack休息 rest吃药 takingDrug魔法攻击wizard_attack3) Wizard被创建后,maxMP和MP为100 ,maxHP和HP为100,maxSP和SP为100,maxMP和M

5、P为100,damage为20,exp为0,level为1;4) 每回合Wizard通过决策(makeDecision)来决定需要发出哪一个动作(攻击attack、魔法攻击wizard_attack、休息rest或吃药takingDrug,注意每回合只能做一个动作);5) 魔法攻击(wizard_attack):如果魔法值小于25、或体力小于10无法使用该技能。一次魔法攻击能同时攻击几个敌人,但每对付一个敌人,自己的体力(SP)减少10、魔法值减少25、经验(exp)增加5、敌人的生命值(HP)减去自己攻击力值(damage)。敌人生命值(HP)减少到0时死去,同时自己获得敌人身上的所有药瓶;

6、6) 经验(exp)每增加20,等级(level)提高1级,maxHP、maxSP、maxMP、damage分别增加20;(如果觉得升级太快了,或者升级增加的HP和damage不太协调,可以调整这些参数)7) 休息(rest)一次,生命值(HP)、体力(SP)恢复效果同Soldier的休息(rest)动作。魔法值增加最大魔法值的30%,但不要超过最大魔法值,例如:_mp=_mp+_maxMp*30%。8) 吃药(takingDrug)一次,效果等同于Soldier吃药。9) 攻击(attack),攻击效果同Soldier。3 Master巫师类,从Wizard类公有继承1) Master的属性

7、(protected作用域)新增的属性:最大内力 maxNp当前内力 NP2) Master的动作(public作用域)决策 makeDecision攻击 attack休息 rest吃药 takingDrug魔法攻击wizard_attack绝杀攻击master_attack3) Master被创建后,maxMP和MP为100 ,maxHP和HP为100,maxSP和SP为100,maxNP和NP为100,damage为30,exp为0,level为1;4) 每回合Wizard通过决策(makeDecision)来决定需要发出哪一个动作(攻击attack、魔法攻击wizard_attack、绝

8、杀攻击master_attack、休息rest或吃药takingDrug,注意每回合只能做一个动作);5) 大师攻击(master_attack),如果内力(NP)大于50时,可以使用大师(master_attack)攻击。一次大师攻击能让被攻击的敌人的生命值(HP)减少其最大生命值的(maxHP)50%(可能有点太强了,破坏平衡性!容易导致游戏在短短几个回合就结束,可以考虑适当减小。),例如敌人HP为100,maxHP为160,被大师攻击后,生命值变为HP-maxHP*50%=100-160*50%=20。一次大师攻击会内力(NP)损耗50、体力(SP)损耗30,经验增加5。6) 魔法攻击(

9、wizard_attack),攻击效果等同于Wizard的攻击(attack)动作7) 攻击(attack),攻击效果等同于Soldier的攻击(attack)动作。8) 使用大师攻击后,经验(exp)每增加20,等级(level)就提高1级,maxHP、maxSP、maxMP、maxNP分别增加20,damage增加20;9) 休息(rest)一次,内力增加最大内力的30%,但不要超过最大内力值。其余如HP、SP、MP的恢复等同于Wizard的休息(rest)动作。10) 吃药(takingDrug)一次,效果等同于Soldier的吃药(takingDrug)动作。4 WarSystem战斗

10、系统类1) WarSystem类的属性军团A Soldier * _pGroupA;军团B Soldier * _pGroupB;2) WarSystem类的动作战斗开始startWar回合开始startRound3) 每次战斗,双方派出一个军团,军团由数名战士、巫师和大师组成。战斗按回合制进行,即每回合中,一方军团的每个成员做完各自的一次动作(由makeDecision决定)后,另一方军团每个成员接着完成自己的一次动作。战斗开始,由哪个军团先发起攻击,系统随机决定。回合的生成和结束由WarSystem类控制;4) WarSystem类拥有两个数据成员(指向指针变量的指针,即二级指针):Sol

11、dier * _pGroupA;Soldier * _pGroupB;分别对应战斗的双方军团。(提示,军团可以由Soldier *数组的形式生成,在WarSystem的pGroupA和pGroupB分别指向两个军团,注意OOP的多态实现。)5) WarSystem类可以发出战斗开始即startWar()动作。在startWar()中,随机决定由哪一方率先发起攻击(恐怕是每个回合都随机决定谁先出手会比较公平,如果每回合先出手都是固定一方,那么战斗结果完全是确定性的。而且由于两支队伍的成员一样,交换先出手权后的结果也是对称的。),然后调用WarSystem的另一动作:回合开始,即startRoun

12、d()。6) startRound()动作的描述:在startRound()中,按军团顺序调用每个战士的makeDecision()动作(也可以考虑两个军团轮流一次一人行动,比较公平)。5将整个战斗过程的每一步保存入日志文件。6项目说明1) 自由组队,人数为2-5人,不能单人组队,也不得超过5人。2) 开发小组全部人员皆要求参与设计和开发,每位组员有明确的分工(组内自行协调);每位组员除了熟悉自己的任务模块外,需熟悉整个系统的设计和开发;3) 影响项目评分的因素:i. 最终系统对需求的实现程度;ii. 项目组内部分工的合理度(包括每人工作量的平衡程度),协作的程度;iii. 每位组员最后的考评

13、皆会影响项目组其他成员的最后评分; 4) 项目组角色及职责说明:项目经理1名(组长)(兼客户沟通人员)建议推选凝聚力较强人员担任控制项目进度。定期(建议每2-3天)召集所有人员开会沟通开发进度。特别当项目进度滞后时,需要提出解决方案减少进度偏移。定期向客户(老师)报告整体开发进度,模块开发进度,及每个成员的实施情况。(建议每2-3天用email形式报告)技术经理1名建议推选技术较强人员担任负责项目整体框架设计,子系统(模块)划分。在项目组其他成员遇到技术难题时,有责任提供技术咨询。程序员N名全体人员(包括项目经理和技术经理)程序开发5) 部分项目需求并未完整给出。如:Soldier等类的mak

14、eDecision决策机制如何设计?在不同场景下该如何做出最佳决策?己方应该分开攻击对方不同的战士,还是应该合力攻击对方最强的战士或者最弱的战士(可参考自己或他人的回合制游戏经验)?应该在哪一个类中增加方法,来获取对方军团的战士信息以便己方做出正确决策?如果战斗在开始后几个回合内就分出胜负,请适量调整各种攻击动作、吃药、休息的数据修改值。(这里设定的生命值相对于伤害值来说有点小了,可适当参考星际魔兽等RTS游戏的参数平衡系统) 在现实中,项目组经常面临开发的项目需求不完整的情况,需要通过多次迭代,反复需求分析和与客户(本项目中的客户即是老师和本组其他同学)沟通逐步解决问题。关于项目组对此类问题的处理能力,也是本次考查的内容之一。6) 最后,再次强调,团队合作是本次项目考察重点。每人最终总评分为项目组得分与个人得分的加权和,其中项目组得分的加权因子远大于个人得分加权因子,因此将团队项目变成个人表演的项目组,无论个人得分高低,只能得到很低的总评分数。【特别提醒】n 最低要求:利用C+面向对象程序设计方法,实现两支队伍(各包含至少一名战士、法师和大师)的自动回合制对战。n 交付时限:第17周周五之前n 交付材料:源代码、可执行程序、PPTn 分数价值:在期末平时成绩考核中占40%8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号