Мне нужно смоделировать покер-столовую очередь, где пользователи берут свои позиции на основе первого доступного места. Я видел это со списками, но я решил его использовать побитовые операционные системы.Является ли это наиболее эффективным способом симуляции «стола для покера»?
def add_user_to_table(max_users=8):
global tbl
# simulate the first position: 00000001
pos = 1
# iterate through all positions. break once found empty position
for i in range (0, max_users):
if not (tbl & pos):
# found an empty position...
# return position, break, etc...
else:
# shift the bit 1 position left to check the next position
# so after the 1st iteration pos will be 00000010
pos = pos << 1
# main. Define a table with some users seated
# a table with seats 1, 3, 4, 6 taken
tbl = int('00101101', 2)
# now place the user on the first available seat (second seat in this example)
add_user_to_table()
С точки зрения производительности (я нужны тысячи таблиц с десятками пользователей), будет ли это самый быстрый и эффективный способ?
Были ли списки/очереди/deques и т. Д. Нарушать этот метод?
возможно больше подходит для http://codereview.stackexchange.com? –
благодарит за заметку. исправлено. – user1102018