Итак, я делаю простую игру в крестики-нолики, и мне трудно понять, как сделать так, чтобы ходы каждого игрока чередовались.Я попытался использовать два цикла while с логическим значением, которое должно меняться после выполнения каждого цикла.Я не уверен, почему, но это не работает, приводя только к одной итерации каждого цикла while, а затем останавливается.Ниже мой код.Может кто-нибудь помочь мне сказать, как это исправить, чтобы они чередовались, и если есть более простой способ сделать это?
moves = 0
first_player_move = True
while first_player_move is True:
print("It's the first player's move")
if ask_for_move("O") is True:
if 3 <= moves <= 5:
if check_if_won("O") is True:
print("The first player won. Congrats! Game over")
return
elif moves ==5:
print("The game ended in a tie.")
return
else:
first_player_move = False
else:
moves +=1
first_player_move = False
elif ask_for_move("O") is False:
continue
while first_player_move is False:
print("It's the second player's move")
if ask_for_move("X") is True:
if check_if_won("X") is True:
print("The second player won. Congrats! Game over")
return
else:
first_player_move = True
elif ask_for_move("X") is False:
continue
Для контекста ask_for_move () - это функция, которая принимает символ игрока в качестве аргументаи возвращает True, если они делают правильный ход, и False, если они этого не делают.