gpt4 book ai didi

frequency - 游戏中的攻击频率如何实现?

转载 作者:行者123 更新时间:2023-12-02 09:12:18 28 4
gpt4 key购买 nike

在一款RPG游戏中,假设有角色A和B。

A每秒将进行x次攻击

B每秒将进行y次攻击

如果我们假设 A 发起攻击,最终的攻击可能是:

A A B A B ...

如何计算攻击顺序?

最佳答案

这是在 Python 3.0 中使用生成器和分数实现此目的的一种方法:

def get_attack_sequence(a, b):
from fractions import Fraction
count_a = count_b = 0
rate_a = Fraction(1, a)
rate_b = Fraction(1, b)
while 1:
new_count_a = count_a + rate_a
new_count_b = count_b + rate_b

if new_count_a < new_count_b:
yield "A"
count_a = new_count_a
elif new_count_a > new_count_b:
yield "B"
count_b = new_count_b
else:
yield "A|B"
count_a = new_count_a
count_b = new_count_b

attack_sequence = get_attack_sequence(3, 2)
print(' '.join(next(attack_sequence) for _ in range(10)))

输出:

A B A A|B A B A A|B A B

需要检查攻击频率是否为 0。为了简单起见,我没有在上面的代码中这样做,但它很容易修复,并且可能最好在此函数之外处理(无论如何,一个玩家无法攻击的战斗不会很有趣)。

这个想法的一个优点是它可以轻松扩展到 2 个以上的同时玩家。

另一个优点是,它还可以在不做任何修改的情况下处理每秒少于一次的攻击(例如,B 攻击每两秒一次,即攻击频率 = 0.5)。

关于frequency - 游戏中的攻击频率如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1994512/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com