【发布时间】:2020-12-01 02:21:35
【问题描述】:
我有两个值 b_kills 和 p_kills 代表每个团队已经完成的击杀次数,其中每个值在 while 循环中每约 5 秒更新一次。我试图做的是记录哪支球队获得了首杀(在一场比赛中)。我尝试使用 prev_b_kills 和 prev_p_kills 来记录每个团队在上一个 while 循环中的击杀数:
while:
...
b_kills, p_kills = ..., ...
...
if b_kills >= 1 and prev_b_kills == 0 and p_kills == 0:
b_fkill = 1 # Binary value, 1 if blue team got the first kill, 0 if purple team got it
elif p_kills >= 1 and prev_p_kills == 0 and b_kills == 0:
b_fkill = 0
else:
b_fkill = 0.5 # If both team get the first kill at the same time
prev_b_kills, prev_p_kills = b_kills, p_kills
当我在游戏已经开始时运行此循环时出现问题,但是我无法推断出哪个团队获得了第一个击杀,所以我也应该将值设置为 0.5。
请注意,我在 while 循环之前定义了 b_fkills = 0.5,因为它是普通值,并且如果我不知道哪个团队获得了第一个杀戮,应该保留的值。另外,我尝试在 while 循环中添加一个计数器来检查迭代是否是 while 循环中的第一次迭代:
b_fkills = 0.5
while:
iter_ = 1
...
if iter_ == 1:
if b_kills == 0 and p_kills == 0:
prev_b_kills, prev_p_kills = 0, 0
else:
...
...
iter_ += 1
我试图解释从游戏中间开始的 while 循环,但我卡住了。我还想将它包装在一个函数中,因为我想多次使用它,但正如我所说,我想不出办法。
【问题讨论】:
-
对你“卡住”到底是什么感到困惑,所以不确定这是否有帮助......但是,你在 while 循环的顶部初始化
iter_ = 1,这意味着每次循环时@987654329 @ 将是 1。 -
是否有理由让您的游戏在发生“杀戮”时调用一个简单的函数,该函数可以为其添加时间戳并保持记录(这将是一个微不足道的函数)。您正在处理所有这些问题,似乎稍微不同的方法可以解决所有问题......
-
不可能。我正在抓取“击杀计数”,因此,在给定的时间,我只能使用每个团队的累积击杀变量。而且正如我所说,这并不能解释我在游戏中期开始抓取统计数据的情况。我想我做对了,即使代码有点意大利面。我将发布解决方案。
标签: python python-3.x algorithm loops while-loop