Я пытаюсь создать простую игру Tic-Tac-Toe в python, чтобы проверить выигрыш. Я использую вложенный цикл для поиска соответствия во вложенных списках. По какой-то причине мой код будет искать только первый вложенный список, а не остальные, как я ожидал.Вложенные циклы во вложенных списках
board = [ 'O', 'X', ' ', 'O', ' ', 'X', 'O', 'X', 'X' ]
wins = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]]
def checkWin(player):
win = False
for test in wins:
print (test)
count = 0
for squares in test:
if board[squares] == player:
count = count + 1
if count == 3:
win = True
return win
if __name__ == '__main__':
print ("\nChecking board for X win ...\n")
if checkWin("X"):
print ("Game over, X wins!")
print ("\nChecking board for O win ...\n")
if checkWin("O"):
print ("Game over, O wins")
Основываясь на плате предусмотрен выигрыш для вывода, как ожидается, вместо этого, это выход я получаю:
Checking board for X win ...
[0, 1, 2]
Checking board for O win ...
[0, 1, 2]
Кто-нибудь знает, почему это происходит?
Вы немедленно вернуться, что вам нужно сделать отступ возвращаемого значения обратно. – zeroth
Вы возвращаетесь после первой итерации по тесту, присваиваете 'return win' в соответствии с вашим первым' for' –