Я не совсем уверен в вашем коде (сам его не выполнил), но уверен, что переопределил
turn = "player1"
#will always slip into:
if turn == "player1":
Переместите настройку «player1» куда-нибудь еще в вашем коде, например, глобальная переменная для тестирования. Прямо сейчас кажется, что даже если вы установите «player2», оно все равно будет перезаписано при следующем запуске.
Немного лишний, добрый совет: строки не являются хорошими компараторами. Если вам не нравится удобочитаемость, подумайте об использовании логических значений или хотя бы целых чисел. Позже вы узнаете, как они более универсальны и менее подвержены ошибкам (таким как простые опечатки или случайная капитализация).
Например, логические значения можно легко перевернуть как
player = not player
(переключение между True
для P1 и False
для P2).
Целые числа можно легко увеличивать, например player_id += 1
(что становится удобным для настольной игры с 3 или более игроками).