我试图找到一个战略游戏战斗的算法,如travian或最终的领主或...但我编写的每个程序都有计算死亡士兵的bug,这个关键点的一些例子是:
数据示例是:
attacker:
Soldiers | defending-power | attacking-power | Soldier Count |
---------|-----------------|-----------------|---------------|
A | 20 | 45 | 5
B | 22 | 77 | 4
C | 41 | 32 | 7
D | 38 | 54 | 6
E | 27 | 41 | 6
defender:
Soldiers | defending-power | attacking-power | Soldier Count |
---------|-----------------|-----------------|---------------|
A | 44 | 12 | 6
B | 59 | 18 | 6
C | 73 | 40 | 7
D | 26 | 61 | 2
E | 7 | 24 | 4
答案 0 :(得分:1)
我建议两名球员的士兵计数遵循exponential decay类似的曲线,依赖于彼此的士兵数量。如同在任何时间点,玩家X的士兵数量减少了一半(Y的士兵)*(Y的攻击力)/(Y的防御力),并且对于玩家Y的士兵数量也相同。
如果两个球员的优势相似,那么双方的士兵数量都会像曲线那样呈指数衰减,但如果一个球员的力量大大超过对方,那么另一方的士兵数将随着时间的推移呈现线性下降。 (是的,在战斗结束之前将士兵数量视为浮点数。)
使算法与数据匹配将是一个确定运行计算频率的过程(基本上,你将该因子乘以的大小),确定你是否同时运行双方或者是否一方减少了另一方的士兵数量首先,无论你是在最后向上还是向下,以及攻击力/防御能力部分是否真的像分开一个一样简单,或者你是否因为获得优势而有减少或失控的回报。