关注
出手顺序:
回合开始:
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,每一回合只形成先后出手顺序,速度的收益是一个不连续函数。
这些特点能让玩家更简单的进行速度的收益计算,感觉在部分的游戏设计上还是有适用性的。
若是做成完全按时间线完全实时结算同样也有缺点,速度收益过大,也可能会导致玩家在基础属性的选择和战斗技能的选择都严重偏向速度。
还想问一下,这类题目作答的程序向程度要如何把控,例如有时候规则上能写出的循环不是程序能直接完成的,但是按照程序能执行的要求,规则会复杂很多。
点赞
相关推荐
05-02 14:05
门头沟学院 嵌入式硬件工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 晒一晒你的工位 #
73251次浏览 233人参与
# 24届的你们现状如何了? #
68578次浏览 395人参与
# 华泰证券Fintech星战营 #
191221次浏览 346人参与
# 写给毕业5年后的自己 #
7654次浏览 136人参与
# 实习中的菜狗时刻 #
354731次浏览 3260人参与
# 职场捅娄子大赛 #
338455次浏览 3413人参与
# 今年形式下双非本找得到工作吗 #
136200次浏览 1037人参与
# 机械人,你的秋招第一份简历被谁挂了 #
137582次浏览 1972人参与
# 工作压力大怎么缓解 #
77052次浏览 922人参与
# 请用你的专业向妈妈表白 #
15751次浏览 111人参与
# 面试被问期望薪资时该如何回答 #
248214次浏览 1444人参与
# 腾讯求职进展汇总 #
829953次浏览 8822人参与
# 25届非技术实习投递记录 #
116148次浏览 969人参与
# 职场情商大赛 #
128276次浏览 650人参与
# 哪些公司笔/面试难度大? #
2723次浏览 20人参与
# 贝壳求职进展汇总 #
22476次浏览 153人参与
# 你的秋招第一场笔试是哪家 #
129003次浏览 1402人参与
# 电网笔面经互助 #
32901次浏览 327人参与
# 正在春招的你,也参与了去年秋招吗? #
303227次浏览 2519人参与
# 互联网回暖,腾讯要招5000人! #
16840次浏览 553人参与
# 打工人的精神状态 #
45641次浏览 813人参与