Список players
содержит экземпляры класса Players
. Я хочу увеличить индекс списка на 1 для каждого цикла, но после того, как он достигнет последнего элемента, он должен начинаться с 0 снова.Велоспорт по списку свыше
В принципе, это код покера, в котором у меня есть X игроков, и я хочу, чтобы они размещали небольшие блайнды (sb) (y сумма денег) и большой блайнд (bb) (2y сумма денег) каждую игру (цикл). Теперь игроки вращаются в каждом раунде. Пример того, что я имею в виду:
Example in 8 player game:
round1: sb,bb,3,4,5,6,7,8
round2: 1,sb,bb,4,5,6,7,8
round3: 1,2,sb,bb,5,6,7,8
.........................
round8: bb,2,3,4,5,6,7,sb
.........................
Example in 2 player game:
round1: sb,bb
round2: bb,sb
round3: sb,bb
.........................
Мой код:
stopNext = True
while check < 10:
newDeck = Deck()
[player.generateCard(newDeck) for player in players] # generate cards for each player
a, b = itertools.cycle(players), itertools.cycle(players)
if stopNext:
next(b, None)
stopNext = False
one = a.next()
two = b.next()
one.postSB(one.amount, sb) # for each cycle select next instance
two.postBB(two.amount, bb) # for each cycle select next instance starting at instance
Что я получаю с 2 игроками и SB = 1, бб = 2:
Next round
99 instance : <__main__.Player instance at 0x7f391cce0950>
98 instance : <__main__.Player instance at 0x7f391cce0998>
Next round
96 instance : <__main__.Player instance at 0x7f391cce0950>
96 instance : <__main__.Player instance at 0x7f391cce0950>
Next round
93 instance : <__main__.Player instance at 0x7f391cce0950>
93 instance : <__main__.Player instance at 0x7f391cce0950>
Next round
90 instance : <__main__.Player instance at 0x7f391cce0950>
90 instance : <__main__.Player instance at 0x7f391cce0950>
Next round
87 instance : <__main__.Player instance at 0x7f391cce0950>
87 instance : <__main__.Player instance at 0x7f391cce0950>
Но я должен получить:
Next round
99
98
Next round
97
97
Next round
96
95
Next round
94
94
Next round
93
92
Я думаю, что это проблема с тем, как next()
используется, как вы можете видеть, начиная с третьего, адрес экземпляра всегда один и тот же.
Хороший улов, это было ошибкой. – estranged
Увидим меня. Я отредактировал, как вы сказали, но почему-то это работает неправильно. Это выглядит хорошо сейчас? Может быть, ошибка в другом месте? – estranged