for для прохождение всех списков в списке (Python)
Есть функция проверки победителя, которая вызывается из другой функции, при прохождение цикла for берется только 1 список из всех, а остальные не прогоняет. Не могу разобраться почему
box = [1, 2, 3, 4, 5, 6, 7, 8, 9]
win_combination = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (1, 4, 7), (2, 5, 8), (3, 6, 9), (1, 5, 9), (3, 5, 7)]
def check_winner():
for i in win_combination: # В ЭТОМ МЕСТЕ ОН БЕРЕТ ТОЛЬКО ПЕРВЫЙ СПИСОК ИЗ ВСЕХ(1, 2, 3)
print(win_combination)
print(i)
if (box[i[0] - 1]) == (box[i[1] - 1]) == (box[i[2] - 1]):
return box[i[1] - 1]
else:
return False
if count > 3:
winner = check_winner()
if winner:
paint_box()
return print(winner + " Выиграл")
break
count += 1
Ответы (1 шт):
Автор решения: Hellius
→ Ссылка
def check_winner():
for i in win_combination:
if (box[i[0] - 1]) == (box[i[1] - 1]) == (box[i[2] - 1]):# Условие проверки одинаковые ли 3 символа
return box[i[0] - 1]