Я пытаюсь сделать игру в крестики-нолики на python3. Я могу заставить игру работать, но когда кто-то выиграл игру, я не могу получить код для завершения. Я перепробовал много методов, но ни один из них не работает:
def find_winner(board,gameIsOn):
if ((board[7]==board[8]==board[9]) and board[7]!= '') or ((board[4]==board[5]==board[6]) and board[4]!= '') or ((board[1]==board[2]==board[3]) and board[7]!= ''):
gameIsOn = False
print('winner!')
elif ((board[7]==board[4]==board[1]) and board[7]!= '') or ((board[8]==board[5]==board[2]) and board[8]!= '') or ((board[9]==board[6]==board[3]) and board[9]!= ''):
gameIsOn = False
print('winner!')
elif ((board[7]==board[5]==board[3]) and board[7]!= '') or ((board[9]==board[5]==board[1]) and board[7]!= ''):
gameIsOn = False
print('winner!')
это функция, которую я использовал, чтобы узнать, выиграл ли кто-то. переменная gameIsOn
устанавливается на False
, если кто-то выиграл. В противном случае это True
.
while(gameIsOn):
if(active_Player == player_1):
position = int(input('Position?'))
player_input(board,active_Player,position)
print_board(board)
find_winner(board,gameIsOn)
active_Player = player_2
else:
position = int(input('Position?'))
player_input(board,active_Player,position)
print_board(board)
find_winner(board,gameIsOn)**
Приведенный выше код является основной частью игры. Игнорируя другие функции, функция find_winner
должна установить значение gameIsOn
равным False
, если кто-то выиграл игру. Но игра не заканчивается даже после того, как кто-то выиграл.
Может кто-нибудь помочь, пожалуйста?