1主题
这个项目的目标是设计,实施和测试用Java编写的视频游戏。 它将为2到6个玩家编写一个游戏RISK。 项目组最多有3个成员!
2游戏说明
RISK是在包含6片地区和42片领地的世界地图上进行的战略游戏,其中每轮游戏可以有2到6个玩家,游戏将一直持续直到他们达成游戏目标。
2.1游戏目标
游戏目标是多种多样的,取决于每个玩家在一开始收到的秘密任务:可能是摧毁其他玩家的所有军事单位,控制某片地区,或控制2到3片地区等等。如果该玩家没有完成他的秘密任务,那么每个玩家都有可能会决定征服这个星球。
3进行比赛
RISK将分为以下两个主要阶段:
玩家获取他们的秘密任务,并得到单位的初始化阶段。
直到任意一个玩家完成秘密任务满足胜利条件的游戏阶段。
3.1游戏初始化
1.每个玩家随机分配一个秘密任务(其他玩家看不到他的任务)
2.领地在玩家之间随机分配,每人开局只有一片领地
3.每个玩家将会收到他们的单位:
2个玩家各有40个战士
3个玩家各有35个战士
4个玩家各有30个战士
5个玩家各有25个战士
6个玩家各有20个战士
4.玩家将他们的单位放置在领地上,并且每个领地上必须至少有一个单位。
任务 |
情况 |
摧毁玩家X |
3个玩家及以上 |
占领所有领地 |
2-3个玩家 |
占领3片地区和至少18片领地 |
全部 |
占领3片地区和至少拥有2个单位 |
3个玩家及以上 |
占领30片领地 |
2-3个玩家 |
占领24片领地 |
4-5个玩家 |
占领21片领地 |
6个玩家 |
占领最大的地区(Asie)和一片其他的地区 |
全部 |
表1 秘密任务
3.2开始回合
每个玩家轮流进行游戏,每回合分两阶段进行:
1.接收增援 2.移动和攻击
3.2.1接收增援
1.玩家获得的增援数量等于他的领地数量除以3并向下取整。
例如,控制14片领地的玩家将获得4个增援。
2.如果玩家控制一整片或多片地区,他将会获得更多的增援:
对于每片地区,额外增援的数量等于该地区的领地数量除以2并向下取整。
例如,对于有4片领地的地区:将会收到2个额外的增援。
3.对于这些增援部队,可能会在占领领地后的一回合内获得额外的增援(见下表2)。增援数量总和为“领地+地区+占领”所得,如果这个总数少于2个增援,则该玩家会至少获得2个增援。
所有接收到的增援都可以放置在玩家控制下的任何领地内。
增援 |
数量 |
T片领地 |
T/3向下取整 |
包含N片领地的一整片地区 |
N/2向下取整 |
在上一回合占领的领地 |
1(每片领地50%的几率) |
表2 增援系统
注意:具有足够多增援数量的玩家可以选择以表4中规定的花费招募骑兵(3个战士)或加农(7个战士),一旦单位类型确定就不可逆。
3.2.2移动和攻击
选择并将所有增援部队放置在自己的领地上后,玩家进入移动阶段。
每种单位每回合有一定数量的移动点数(见表4)。这些点数可以用来在两个相邻领地之间调动部队或者通过海上调动。如果此举是对自己的领地,那么将没有什么特别的事情发生。如果移动到另一个玩家所占领的领地,那么这就是一种攻击,其形式在下一节中指定。在这次移动算作攻击的特殊情况下只有胜利时,或者如果单位实际移动到新征服的领地下,本次移动才算数。换句话说,在平局的情况下,同一单位可能会尝试多次在同一回合中攻击相邻领地。
玩家可以尽可能多地进行移动和攻击,然后他可以结束自己的回合。
3.2.3战斗
每个玩家在每回合中都可以执行尽可能多的攻击。对于每场战斗而言,玩家可以派出最多3个单位去攻击他们所在领地附近的领地。
战斗过程如下:
1.攻击者选择从哪个领地发动攻击。你只能攻击邻近领地,所有用于攻击的单位必须来自同一领地。
2.攻击者一次最多可派出3个单位去攻击。但是即是在没有参加战斗的领地上也必须始终保留至少1个单位。
3.防守者根据优先级别最多选择2个单位进行防守:先是战士,然后是加农,最后是骑兵。
4.根据表4将为每个单位生成一个随机数。
5.我们将对比得分最高的单位:得分最高的攻击者单位VS得分最高的防守者单位,得分第二的攻击者单位VS得分第二的防守者单位(如果存在的话)。同阵营内单位得分相同,按照优先级进行先后排序。如果双方阵营的单位得分相同,规定防守者摧毁攻击者的单位。
请注意,防守者和攻击者的优先级不一样!
6.对于每一次比较过程,得分较高的单位都会摧毁得分较低的单位。平等有益于防守者。
7.如果一方的单位多于另一方,剩余得分最低的单位不会被摧毁。
8.只有当防守者不再拥有任何单位时才能完全胜利并攻占领地。
9.只要还有单位,攻击者就可以用自己选择的单位进行再次攻击。
10.在攻占领地的情况下,攻击者会将所有参与并存活的单位放在那里。
11.对于每个刚攻占的领地,玩家将有50%的几率在他下一个回合中获得1次额外的增援。
攻击者 |
防守者 |
攻击者 |
防守者 |
战士6 战士5 战士1 |
战士4 战士3 |
战士 存活 战士 存活 战士 存活 |
战士 摧毁 战士 摧毁 |
骑兵4 战士3 |
战士6 |
骑兵 摧毁 战士 存活 |
战士 存活 |
战士3 |
战士3 |
战士 摧毁 |
战士存活 |
骑兵7 |
加农4 骑兵4 |
骑兵 存活 |
加农 摧毁 骑兵 存活 |
战士6 战士3 |
战士5 战士4 |
战士 存活 战士 摧毁 |
战士 摧毁 战士 存活 |
加农5 骑兵3 战士3 |
战士4 战士3 |
加农 存活 骑兵 摧毁 战士 存活 |
战士 摧毁 战士 存活 |
骑兵6 战士4 加农4 |
战士5 战士4 |
骑兵 存活 战士 摧毁 加农 存活 |
战士 摧毁 战士 存活 |
表3 战斗示例表
只要在敌方领地附近的领地上有攻击者留下的单位,他就可以在他的回合中执行尽可能多的战斗。
3.3单位属性表
单位 |
花费 |
能力 (随机点数) |
进攻 优先级 |
防守 优先级 |
移动点数 (每回合) |
战士 |
1 |
1-6 |
2 |
1 |
2 |
骑兵 |
3 |
2-7 |
1 |
3 |
3 |
加农 |
7 |
4-9 |
3 |
2 |
1 |
表4 单位能力表
1.上表总结了所有单位的属性。由于作弊行为可能会影响游戏平衡,因此强烈建议你提供可修改的代码,以便轻松修改这些值并添加可能的新单位。
2.花费表明必须以多少增援进行交换以获得更先进的单位。
3.能力对应于单位在战斗中可以产生的随机值的范围,无论是攻击还是防守。
4.攻击优先级表示攻击者在单位随机产生相同的能力数值的情况下,哪个单位将优先攻击防守者的单位。这个属性决不表示应该先发送哪些单位来攻击,攻击者可以任意选择用于攻击敌方领地的单位。
5.防守优先级表示防守者在单位随机产生相同的能力数值的情况下,哪个单位将优先攻击攻击者的单位。并且这个属性可以确定哪些单位会在被攻击情况下首先进行防守,防守者不能选择他用于防守的单位。
6.移动点数表示每个单位在一个回合中可以执行多少次指令。切记,如果发生战斗,只有当战斗胜利并且单位有效地移动到被攻占的领地上时,移动才会计数。
代写CS&Finance|建模|代码|系统|报告|考试
编程类:C++,JAVA ,数据库,WEB,Linux,Nodejs,JSP,Html,Prolog,Python,Haskell,hadoop算法,系统 机器学习
金融类:统计,计量,风险投资,金融工程,R语言,Python语言,Matlab,建立模型,数据分析,数据处理
服务类:Lab/Assignment/Project/Course/Qzui/Midterm/Final/Exam/Test帮助代写代考辅导
天才写手,代写CS,代写finance,代写statistics,考试助攻
E-mail:850190831@qq.com 微信:BadGeniuscs 工作时间:无休息工作日-早上8点到凌晨3点
如果您用的手机请先保存二维码到手机里面,识别图中二维码。如果用电脑,直接掏出手机果断扫描。