1 / 4
文档名称:

c+++团队项目设计.pdf

格式:pdf   大小:226KB   页数:4页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

c+++团队项目设计.pdf

上传人:lajie 2023/3/28 文件大小:226 KB

下载得到文件列表

c+++团队项目设计.pdf

文档介绍

文档介绍:该【c+++团队项目设计 】是由【lajie】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【c+++团队项目设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。-
设计和实现回合制战斗系统Combat

1)Soldier的属性〔protected作用域〕
最大生命ma*HP当前生命HP最大体力ma*SP当前体力SP
攻击力damage经历e*p等级levelname
药瓶数量drugNum
2)Soldier的动作〔public作用域〕
决策makeDecision攻击attack休息rest吃药takingDrug
3)Soldier被创立后,ma*HP和HP为100,ma*SP和SP为100,damage为20,e*p为
0,level为1,drugNum为5;
4)每回合Soldier通过决策〔makeDecision〕来决定需要发出哪一个动作〔攻击attack、
休息rest或吃药takingDrug,注意每回合只能做其中一个动作〕。请自行设计和调
整每种动作发出的必要条件,例如:生命值假设低于最大值的30%该回合就吃药,
体力低于最大值的50%该回合就休息,生命力和体力都充足该回合就发起攻击,等
等;
5)攻击〔attack〕敌人一次,体力〔SP〕减少10,经历〔e*p〕增加5。敌人的生命值
〔HP〕减去攻击方攻击力值〔damage〕的大小。敌人生命值〔HP〕减少到0时死去,
如果敌人被自己打死,获得敌人身上的所有药瓶;
6)经历〔e*p〕每增加20,等级〔level〕就提高1级,ma*HP、ma*SP、damage分别增
加20;Soldier,Wizard,Master升级后,当前HP,SP,MP和NP的值皆按比例
〔**:Ma***〕增,注意:长不是升级后上述当前属性值就自动全满。例如:Wizard
的HP/Ma*HP50/100,升级后,HP/Ma*HP调整为60/120。升级前HP:Ma*HP比例为
,升级后Ma*HP变成120,,HP自动调整为60。这种设
定类似于魔兽争霸III。
7)休息〔rest〕一次,生命值〔HP〕、体力〔SP〕增加最大值的50%,但不要超过最大
值。〔例如,当前生命值是30,最大生命值是100,则吃药后的当前生命值为
30+100*50%=80。〕
8)吃药〔takingDrug〕,如果药瓶数量为0,不能吃药。吃药一次,药瓶数量减少1,
生命值〔HP〕增加最大值的80%,但不能超过ma*HP。
,从Soldier类公有继承
1)Wizard的属性〔protected作用域〕
新增的属性:最大魔法值ma*MP当前魔法值MP
2)Wizard的动作〔public作用域〕
决策makeDecision攻击attack休息rest吃药takingDrug
魔法攻击wizard_attack
3)Wizard被创立后,ma*MP和MP为100,ma*HP和HP为100,ma*SP和SP为100,
ma*MP和MP为100,damage为20,e*p为0,level为1;
4)每回合Wizard通过决策〔makeDecision〕来决定需要发出哪一个动作〔攻击attack、
魔法攻击wizard_attack、休息rest或吃药takingDrug,注意每回合只能做一个动
作〕;
5)魔法攻击〔wizard_attack〕:如果魔法值小于25、或体力小于10无法使用该技能。
-
一次魔法攻击能同时攻击几个敌人,但每对付一个敌人,自己的体力〔SP〕减少10、
魔法值减少25、经历〔e*p〕增加5、敌人的生命值〔HP〕减去自己攻击力值〔damage〕。
敌人生命值〔HP〕减少到0时死去,同时自己获得敌人身上的所有药瓶;
6)经历〔e*p〕每增加20,等级〔level〕提高1级,ma*HP、ma*SP、ma*MP、damage
分别增加20;〔如果觉得升级太快了,或者升级增加的HP和damage不太协调,可
以调整这些参数〕
7)休息〔rest〕一次,生命值〔HP〕、体力〔SP〕恢复效果同Soldier的休息〔rest〕
动作。魔法值增加最大魔法值的30%,但不要超过最大魔法值,例如:
_mp=_mp+_ma*Mp*30%。
8)吃药〔takingDrug〕一次,效果等同于Soldier吃药。
9)攻击〔attack〕,攻击效果同Soldier。
,从Wizard类公有继承
1)Master的属性〔protected作用域〕
新增的属性:最大内力ma*Np当前内力NP
2)Master的动作〔public作用域〕
决策makeDecision攻击attack休息rest吃药takingDrug
魔法攻击wizard_attack绝杀攻击master_attack
3)Master被创立后,ma*MP和MP为100,ma*HP和HP为100,ma*SP和SP为100,
ma*NP和NP为100,damage为30,e*p为0,level为1;
4)每回合Wizard通过决策〔makeDecision〕来决定需要发出哪一个动作〔攻击attack、
魔法攻击wizard_attack、绝杀攻击master_attack、休息rest或吃药takingDrug,
注意每回合只能做一个动作〕;
5)大师攻击〔master_attack〕,如果内力〔NP〕大于50时,可以使用大师
〔master_attack〕攻击。一次大师攻击能让被攻击的敌人的生命值〔HP〕减少其最
大生命值的〔ma*HP〕50%〔可能有点太强了,破坏平衡性!容易导致游戏在短短几
个回合就完毕,可以考虑适当减小。〕,例如敌人HP为100,ma*HP为160,被大师
攻击后,生命值变为HP-ma*HP*50%=100-160*50%=20。一次大师攻击会内力〔NP〕
损耗50、体力〔SP〕损耗30,经历增加5。
6)魔法攻击〔wizard_attack〕,攻击效果等同于Wizard的攻击〔attack〕动作
7)攻击〔attack〕,攻击效果等同于Soldier的攻击〔attack〕动作。
8)用大师攻击后,使经历〔e*p〕每增加20,等级〔level〕就提高1级,ma*HP、ma*SP、
ma*MP、ma*NP分别增加20,damage增加20;
9)休息〔rest〕一次,内力增加最大内力的30%,但不要超过最大内力值。其余如HP、
SP、MP的恢复等同于Wizard的休息〔rest〕动作。
10)吃药〔takingDrug〕一次,效果等同于Soldier的吃药〔takingDrug〕动作。

1)WarSystem类的属性
军团ASoldier**_pGroupA;军团BSoldier**_pGroupB;
2)WarSystem类的动作
战斗开场startWar回合开场startRound
3)每次战斗,双方派出一个军团,军团由数名战士、巫师和大师组成。战斗按回合制
进展,即每回合中,一方军团的每个成员做完各自的一次动作〔由makeDecision
-
决定〕后,另一方军团每个成员接着完成自己的一次动作。战斗开场,由哪个军团
先发起攻击,系统随机决定。回合的生成和完毕由WarSystem类控制;
4)WarSystem类拥有两个数据成员〔指向指针变量的指针,即二级指针〕:
Soldier**_pGroupA;
Soldier**_pGroupB;
分别对应战斗的双方军团。〔提示,军团可以由Soldier*数组的形式生成,在
WarSystem的pGroupA和pGroupB分别指向两个军团,注意OOP的多态实现。〕
5)WarSystem类可以发出战斗开场即startWar〔〕动作。在startWar〔〕中,随机决
定由哪一方率先发起攻击〔恐怕是每个回合都随机决定谁先出手会比拟公平,如果
每回合先出手都是固定一方,则战斗结果完全是确定性的。而且由于两支队伍的成
员一样,交换先出手权后的结果也是对称的。〕,然后调用WarSystem的另一动作:
回合开场,即startRound〔〕。
6)startRound〔〕动作的描述:在startRound〔〕中,按军团顺序调用每个战士的
makeDecision〔〕动作〔也可以考虑两个军团轮一次一流人行动,比拟公平〕。


1)自由组队,人数为2-5人,不能单人组队,也不得超过5人。
2)开发小组全部人员皆要求参与设计和开发,每位组员有明确的分工〔组内自行协
调〕;每位组员除了熟悉自己的任务模块外,需熟悉整个系统的设计和开发;
3)影响工程评分的因素:
;
〔包括每人工作量的平衡程度〕,协作的程度;
;
4)工程组角色及职责说明:
控制工程进度。定期〔建议每2-3天〕
召集所有人员开会沟通开发进度。特别
工程经理1名〔组当工程进度滞后时,需要提出解决方案
建议推选凝聚力较强
长〕减少进度偏移。
人员担任
〔兼客户沟通人员〕定期向客户〔教师〕报告整体开发进度,
模块开发进度,及每个成员的实施情况。
〔建议每2-3天用email形式报告〕
负责工程整体框架设计,子系统〔模块〕
建议推选技术较强人划分。
技术经理1名
员担任在工程组其他成员遇到技术难题时,有
责任提供技术咨询。
程序员N名全体人员〔包括工程程序开发
经理和技术经理〕
5)局部工程需求并未完整给出。如:Soldier等类的makeDecision决策机制如何设
计?在不同场景下该如何做出最正确决策?己方应该分开攻击对方不同的战士,还
是应该合力攻击对方最强的战士或者最弱的战士〔可参考自己或他人的回合制游戏
经历〕?应该在哪一个类中增加方法,来获取对方军团的战士信息以便己方做出正
确决策?如果战斗在开场后几个回合内就分出胜负,请适量调整各种攻击动作、吃
-
药、休息的数据修改值。〔这里设定的生命值相对于伤害值来说有点小了,可适当
参考星际魔兽等RTS游戏的参数平衡系统〕在现实中,工程组经常面临开发的工程
需求不完整的情况,需要通过屡次迭代,反复需求分析和与客户〔本工程中的客户
即是教师和本组其他同学〕沟通逐步解决问题。关于工程组对此类问题的处理能力,
也是本次考察的内容之一。
6)最后,再次强调,团队合作是本次工程考察重点。每人最终总评分为工程组得分与
人得分的个加权和,其中工程组得分的加权因子远大于人得分个加权因子,因此将
团队工程变成个人表演的工程组,无论个人得分上下,只能得到很低的总评分数。
【特别提醒】
最低要求:利用C++面向对象程序设计方法,实现两支
队伍〔各包含至少一名战士、法师和大师〕的自动回合制
对战。
交付时限:第17周周五之前
交付材料:源代码、可执行程序、PPT
分数价值:在期末平时成绩考核中占40%