Первый for
l oop проходит по каждой строке, подсчитывая, сколько раз появляется первый элемент, и печатает "Winner"
, если это первое значение заполняет эту строку. Значения, составляющие каждую строку, аккуратно хранятся в их собственном списке, так что это довольно просто.
Второй for
l oop делает то же самое, за исключением того, что он проходит по столбцам, и проверка того, соответствует ли одно и то же значение любому из них. Это немного сложнее, потому что значения в столбце распределены по спискам, которые составляют разные строки. Второй for
l oop создает временный массив с именем check
, а затем третий for
l oop (один внутри второго) проходит по каждой строке, получает значение из этой строки, которая является в текущем столбце и добавляет его в список check
. Добавление всех значений, составляющих столбец, в один и тот же список позволяет легко проверить, заполняет ли первое значение в этом столбце весь столбец.
Кроме того, оператор if
внутри этого третьего * Вместо этого 1013 * l oop должен находиться только во втором for
l oop:
for col in range(len(game)):
check = []
for row in game:
check.append(row[col])
if check.count(check[0]) == len(check) and check[0] != 0:
print("Winner")
В противном случае, если вы найдете элемент, который не является 0
в первой строке В столбце, массив check
будет содержать только один элемент, а check.count(check[0])
будет равен len(check)
, поэтому будет напечатано "Winner"
без проверки остальных элементов в этом столбце.