Я пытаюсь написать функцию в моей программе tic-tac-toe, которая проверяет, были ли все три пробела в строке на сетке отмечены как «x» или «o». lst_1 список всех возможных комбинаций линий:проверка строки во вложенном списке
def conc():
global lst
lst_1 = [[lst[0],lst[1],lst[2]],[lst[3],lst[4],lst[5]],[lst[6],lst[7],lst[8]],[lst[0],lst[3],lst[6]],[lst[1],lst[4],lst[7]], [lst[2],lst[5],lst[8]],[lst[0],lst[4],lst[8]],[lst[2],lst[4],lst[6]], [lst[0],lst[1],lst[2]],[lst[3],lst[4],lst[5]],[lst[0],lst[3],lst[6]], [lst[1],lst[4],lst[7]],[lst[2],lst[5],lst[8]],[lst[0],lst[4],lst[8]], [lst[2],lst[4],lst[6]]]
triplet = [s for s in lst_1]
if all('o' == item for item in triplet):
print('Player 2 wins!')
reply()
elif all('x' == item for item in triplet):
print('Player 1 wins!')
reply()
else:
pass
Я думал, что это будет остановить игру, когда кому-то удалось получить 3 подряд, но он продолжает идти. Есть идеи?
Я думаю, что у вас есть дополнительные данные в 'lst_1', это все испортило. – TigerhawkT3
И в ваших 'all()' вызовах отсутствуют некоторые ключевые части. – TigerhawkT3
Ваш отступ выключен, что имеет решающее значение для Python. Ваша переменная 'triplet' кажется такой же, как' lst_1'. Вы не говорите нам, что означает 'reply()'. См. [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). –