如何跟踪各种类型的条纹

2024-10-05 17:30:01 发布

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

我正在写一个脚本,观看一个在线掷硬币游戏,并记录结果。我想找一个更简单的方法来找出三个相同的结果,四个相同的结果等等,连续几次结束

if result = heads:
headsCount += 1
headsStreak +=1

tailsCount = 0
tailsStreak = 0

headsCount是在一个会话中看到的头结果的总数,而streak只是为了显示一行中出现了多少头。更新者:

if headsCount >= headsStreak:
headsStreak = headsCount

我的问题是-我想记录连续几次在1结束,在2结束,在3结束等等

我现在有个愚蠢的想法:

if headsStreak = 1:
    oneHeadsStreak +=1
if headsStreak = 2
    twoHeadsStreal +=1

但这是非常乏味的。那么有没有更简单的方法来创建变量。。。例如:

for i in range (1, 20):
    (i)streak = 0

然后像这样

for i in range (1, 20):
    if headsStreak = i:
        (i)streak += 1

提前谢谢


Tags: 方法in脚本游戏forif记录range
2条回答

使用defaultdict,你只需要三个变量

from collections import defaultdict
current_streak = 0
current_side = "heads"
streak_changes = defaultdict(int)

然后在条纹变化时将值存储在字典中

if side == current_side:
    current_streak += 1
else:
    current_side = side
    streak_changes[current_streak] += 1
    current_streak = 1

您可以使用一个列表来跟踪条纹计数器。您必须考虑哪个索引是哪个条纹长度(例如,索引0表示条纹长度1,索引1表示长度2等)

将所有列表元素初始化为零: l = [0 for i in range(20)] 然后,每当条纹结束时,在对应索引处增加list元素:l[3] += 1表示4条纹

相关问题 更多 >