C团队项目设计.doc

上传人:scccc 文档编号:11493813 上传时间:2021-08-09 格式:DOC 页数:14 大小:22.45KB
返回 下载 相关 举报
C团队项目设计.doc_第1页
第1页 / 共14页
C团队项目设计.doc_第2页
第2页 / 共14页
C团队项目设计.doc_第3页
第3页 / 共14页
C团队项目设计.doc_第4页
第4页 / 共14页
C团队项目设计.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《C团队项目设计.doc》由会员分享,可在线阅读,更多相关《C团队项目设计.doc(14页珍藏版)》请在三一文库上搜索。

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

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

3、)就提高1级,maxHP、maxSP、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,

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

5、maxHP和HP为100,maxSP和SP为100,maxMP和MP为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

6、)。敌人生命值(HP)减少到0时死去,同时自己获得敌人身上的所有药瓶; 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),攻击效果同Soldi

7、er。 3 Master巫师类,从Wizard类公有继承 1) Master的属性(protected作用域) 新增的属性: 最大内力 maxNp 当前内力 NP 2) Master的动作(public作用域) 决策 makeDecision 攻击 attack 休息 rest 吃药 takingDrug 魔法攻击wizard_attack 绝杀攻击master_attack 3) Master被创建后,maxMP和MP为100 ,maxHP和HP为100,maxSP和SP为100,maxNP和NP为100,damage为30,exp为0,level为1; 4) 每回合Wizard通过决策(m

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

9、160*50%=20。一次大师攻击会内力(NP)损耗50、体力(SP)损耗30,经验增加5。 6) 魔法攻击(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) 吃

10、药(takingDrug)一次,效果等同于Soldier的吃药(takingDrug)动作。 4 WarSystem战斗系统类 1) WarSystem类的属性 军团A Soldier * _pGroupA; 军团B Soldier * _pGroupB; 2) WarSystem类的动作 战斗开始startWar 回合开始startRound 3) 每次战斗,双方派出一个军团,军团由数名战士、巫师和大师组成。战斗按回合制进行,即每回合中,一方军团的每个成员做完各自的一次动作(由makeDecision决定)后,另一方军团每个成员接着完成自己的一次动作。战斗开始,由哪个军团先发起攻击,系统随机

11、决定。回合的生成和结束由WarSystem类控制; 4) WarSystem类拥有两个数据成员(指向指针变量的指针,即二级指针): Soldier * _pGroupA; Soldier * _pGroupB; 分别对应战斗的双方军团。(提示,军团可以由Soldier *数组的形式生成,在WarSystem的pGroupA和pGroupB分别指向两个军团,注意OOP的多态实现。) 5) WarSystem类可以发出战斗开始即startWar()动作。在startWar()中,随机决定由哪一方率先发起攻击(恐怕是每个回合都随机决定谁先出手会比较公平,如果每回合先出手都是固定一方,那么战斗结果完全

12、是确定性的。而且由于两支队伍的成员一样,交换先出手权后的结果也是对称的。),然后调用WarSystem的另一动作:回合开始,即startRound()。 6) startRound()动作的描述:在startRound()中,按军团顺序调用每个战士的makeDecision()动作(也可以考虑两个军团轮流一次一人行动,比较公平)。 5将整个战斗过程的每一步保存入日志文件。 6项目说明 1) 自由组队,人数为2-5人,不能单人组队,也不得超过5人。 2) 开发小组全部人员皆要求参与设计和开发,每位组员有明确的分工(组内自行协调);每位组员除了熟悉自己的任务模块外,需熟悉整个系统的设计和开发; 3

13、) 影响项目评分的因素: i. 最终系统对需求的实现程度; ii. 项目组内部分工的合理度(包括每人工作量的平衡程度),协作的程度; iii. 每位组员最后的考评皆会影响项目组其他成员的最后评分; 4) 项目组角色及职责说明: 项目经理1名(组长) (兼客户沟通人员) 建议推选凝聚力较强人员担任 控制项目进度。定期(建议每召集所有人员开会沟通开发进度。特别当项目进度滞后时,需要提出解决方案减少进度偏移。定期向客户模块开发进度,(建议每技术经理1名 建议推选技术较强人员担任 负责项目整体框架设计,划分。在项目组其他成员遇到技术难题时,有责任提供技术咨询。程序员N名 全体人员(包括项目经理和技术经

14、理) 程序开发2-天(老师报告整体开发进度及每个成员的实施情况2-天emai形式报告子系(模块 5) 部分项目需求并未完整给出。如:Soldier等类的makeDecision决策机制如何设计?在不同场景下该如何做出最佳决策?己方应该分开攻击对方不同的战士,还是应该合力攻击对方最强的战士或者最弱的战士(可参考自己或他人的回合制游戏经验)?应该在哪一个类中增加方法,来获取对方军团的战士信息以便己方做出正确决策?如果战斗在开始后几个回合内就分出胜负,请适量调整各种攻击动作、吃药、休息的数据修改值。(这里设定的生命值相对于伤害值来说有点小了,可适当参考星际魔兽等RTS游戏的参数平衡系统) 在现实中,

15、项目组经常面临开发的项目需求不完整的情况,需要通过多次迭代,反复需求分析和与客户(本项目中的客户即是老师和本组其他同学)沟通逐步解决问题。关于项目组对此类问题的处理能力,也是本次考查的内容之一。 6) 最后,再次强调,团队合作是本次项目考察重点。每人最终总评分为项目组得分与个人得分的加权和,其中项目组得分的加权因子远大于个人得分加权因子,因此将团队项目变成个人表演的项目组,无论个人得分高低,只能得到很低的总评分数。 【特别提醒】 ? 最低要求:利用C+面向对象程序设计方法,实现两支队伍(各包含至少一名战士、法师和大师)的自动回合制对战。 ? 交付时限:第17周周五之前 ? 交付材料:源代码、可执行程序、PPT ? 分数价值:在期末平时成绩考核中占40%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1