设计算法如何在玩家之间进行战斗

时间:2014-04-04 21:45:58

标签: algorithm

我需要为我的游戏创建简单(或不简单的:D)规则。所以我的想法是所有玩家都有四个参数:

Energy user1 = 100
Power user1 = 100
Speed user1 = 5
Resistance user1 = 25

Energy user2 = 100
Power user2 = 110
Speed user2 = 10
Resistance user2 = 30

我需要一个战斗系统。这是我的算法:

1. Random power range (20% - 80%)
2. Random resistance (20% - 80%)
3. power user1 = 100 * 30% (random example)
4. resistance user1 = 25 * 50% (random example)
5. power user2 = 110 * 30% = 33
6. resistance user2 = 30 * 50% = 15
7. power user1 = power user1 - resistance user 2: 30 - 15 = 15
8. power user2 = power user2 - resistance user 1: 33 - 12.5 = 20.5
9. if user1 speed > user2 speed power user1 = power user1 + (power user1 * 10%)
9. if user2 speed > user1 speed power user2 = power user2 + (power user2 * 10%)
for example user1 and user2 has the same speed
10. lucky user1 and user2 = random range (-3% to 3%) and (add or remove) to power user1 and user2
11. Winner is person who has more and power

获胜者得到这样的XP:

1. lost point user1 = end power user1/user2 speed
2. lost point user2 = end power user2/user1 speed
3. ptg = abs(lost point user1 = lost point user2)
4. this ptg remove from loser power and add to winner XP

以3种方式收集XP和培训用户:力量,速度,阻力

我的观点是当我模拟并将user1设置为200点时,这个用户总是赢。 无论我如何在用户2的其他方式之间拆分相同的100 XP。

例如

Energy user1 = 100
Power user1 = 200
Speed user1 = 5
Resistance user1 = 25

Energy user2 = 100
Power user2 = 140
Speed user2 = 45
Resistance user2 = 45

User1总是获胜。所以你知道一些好的算法来对抗战斗,我应该如何计算去除或增加能量?我不知道。

2 个答案:

答案 0 :(得分:2)

我可以建议两种不同的算法

累积伤害

User1总是赢得第一场战斗,但会受到伤害。例如power user1 = 200power user2 = 140。击败user2后,user1将保留power user1 = 60。如果用户1在恢复之前与另一场战斗,他的力量要低得多,而且可能会失败。

随机伤害

在此算法中,对user2的损害等于user1的幂的随机百分比,反之亦然。因此,如果power user1 = 200power user2 = 140,则对user2的损坏是0到200之间的随机数,对user1的损坏是0到140之间的随机数。继续累积随机伤害,直到一个玩家被击败。在这个算法中,user1不能保证赢,但如果两个玩家都同样幸运,那么确实有优势。

答案 1 :(得分:0)

电子表格用于此类数字运算以测试游戏算法 它可以很容易地针对相同的功能测试各种数量的输入