关注
出手顺序:
回合开始:
1. 结算之前回合的减速buff以及复活因其他玩家技能被复活的玩家。
2. 对生存玩家的速度进行从大到小的列表排序,相等则随机排列。
3. 定义本次战斗的回合速度参数为速度最慢的玩家的速度。
4. 定义一个以(玩家,回合用时)为元组的二维数组。
5. 对每一位玩家分别定义行动时间,行动时间=回合速度参数/该玩家速度。
6. 对每一位玩家分别定义行动次数,行动次数=该玩家速度/回合速度参数,此处为整除。
7. 对每一位玩家分别定义回合用时,回合用时初始为0。
8. 再对每一个玩家的每一次行动分别计算回合用时,回合用时=行动时间*n, n取1,2,...,行动次数,每次输出(玩家,回合用时)的元组并加入二维数组。
9. 在二维数组中对回合用时从小到大排序,若回合用时相等则参照玩家速度列表,玩家速度快的在前。
10. 将排序好的二维数组中的玩家数列输出即为出手顺序排列。
11. 玩家操作及战斗伤害计算,伤害结算规则:玩家先行动并结算此次行动造成的添加buff>治疗>伤害,此时buff只添加状态不进行任何结算,行动结束后结算玩家受到buff影响的治疗>伤害,若此时生命值归0不进行任何判定。
若在轮到玩家操作时角色生命值归0则开始判定:
若玩家能够主动复活自身,进行选择并消耗出手(1)选择复活,玩家复活并清除一切异常buff,(2)不选择复活,则将主动选择复活的选择功能移除并死亡。
若玩家不能主动复活自身,直接跳过出手并死亡。
12. 回合结束,返回循环。
整体是按照一个时间线取节点的思路做的,也能够简单的兼容减速buff和复活机制,这个设计方案导致了
1. 减速buff结算不是按照每次出手实时结算的。
2. 若玩家速度比值在为1:1.9,每一回合只形成先后出手顺序,速度的收益是一个不连续函数。
这些特点能让玩家更简单的进行速度的收益计算,感觉在部分的游戏设计上还是有适用性的。
若是做成完全按时间线完全实时结算同样也有缺点,速度收益过大,也可能会导致玩家在基础属性的选择和战斗技能的选择都严重偏向速度。
还想问一下,这类题目作答的程序向程度要如何把控,例如有时候规则上能写出的循环不是程序能直接完成的,但是按照程序能执行的要求,规则会复杂很多。
点赞
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-20 15:36
山东大学 C++
NewCoderAA...:面试官说这话兴许有可能是暗示,但是hr面的hr都会说这句话的,这是她们的礼貌用语 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
173132次浏览 2922人参与
# 找工作,行业重要还是岗位重要? #
85373次浏览 1690人参与
# 职场上哪些行为很加分? #
306992次浏览 3454人参与
# 大家每天通勤多久? #
69865次浏览 444人参与
# 实习的内耗时刻 #
211238次浏览 1541人参与
# 你面试体验感最差/最好的公司 #
17949次浏览 295人参与
# 一人说一个提前实习的好处 #
10855次浏览 205人参与
# 今年你最想重开的一场面试是? #
4168次浏览 69人参与
# 秋招落幕,你是He or Be #
12343次浏览 240人参与
# 互联网行业现在还值得去吗 #
46928次浏览 351人参与
# 实习没事做是福还是祸? #
16890次浏览 256人参与
# 面试吐槽bot #
165020次浏览 814人参与
# 重来一次,你会对开始求职的自己说 #
6144次浏览 154人参与
# 反问环节如何提问 #
126392次浏览 2664人参与
# 礼物开箱Plog #
695次浏览 24人参与
# 工作中听到最受打击的一句话 #
6714次浏览 115人参与
# 团建是“福利”还是是 “渡劫” #
7261次浏览 150人参与
# 我的第一份实习怎么找的 #
208590次浏览 1827人参与
# 比亚迪工作体验 #
74747次浏览 281人参与
# 大家实习每天都在干啥 #
106544次浏览 581人参与
