如何记录while循环中的首次出现

2024-06-16 09:14:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个值b_killsp_kills,它们代表了每个团队所做的击杀次数,在while循环中每~5秒更新一次。我想做的是记录哪支球队(在一场比赛中)第一次被杀。我试着用prev_b_killsprev_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
我试图解释比赛开始时的循环,但我被卡住了。我还想把它包装成一个函数,因为我想多次使用它,但正如我所说的,我想不出一种方法来实现它


Tags: andtheif记录团队次数teamfirst
1条回答
网友
1楼 · 发布于 2024-06-16 09:14:25

我建立在我已经拥有的基础上,它工作正常(到目前为止),但是代码真的很混乱

# 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

相关问题 更多 >