如何解决如何在while循环中记录首次出现
我有两个值b_kills
和p_kills
代表每个团队的杀戮次数,每一个周期中每〜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循环,但是我只是被卡住了。我还想将其包装在一个函数中,因为我想多次使用它,但是正如我所说,我找不到解决方法。
解决方法
我以已有的东西为基础,并且(到目前为止)可以正常工作,但是代码确实很混乱。
# Check for the score already in place
if iter_ == 1:
if b_kills != 0 and p_kills != 0:
b_fkills_pass = False
else:
b_fkills_pass = True
prev_b_kills,prev_p_kills = 0,0
if b_fkills_pass == True:
if b_kills >= 1 and prev_b_kills == 0 and p_kills == 0:
b_fkills = 1
elif p_kills >= 1 and prev_p_kills == 0 and b_kills == 0:
b_fkills = 0
else:
b_fkills = 0.5
else:
b_fkills = 0.5
prev_b_kills,prev_p_kills = b_kills,p_kills
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。