#python #exception #user-input
#python #исключение #пользовательский ввод
Вопрос:
Я пытаюсь написать игру для висельников на python 3. Я выбираю игрока для ввода секретного слова и проверяю, нет ли цифр, специальных символов и т. Д.. Что я хочу иметь возможность сделать, так это дать другому игроку возможность выбрать слово, если текущий игрок попытается нарушить эти правила. Затем я хочу, чтобы это продолжало чередоваться, пока кто-нибудь не введет слово, соответствующее критериям. Что у меня есть сейчас…
word_to_guess = input(First_player " has been randomly chosen to pick a word! Please type it in now with no numbers, spaces or special characters: ").lower()
while True:
if word_to_guess.isalpha():
break
word_to_guess = input("OK, " Second_player ", since " First_player " can't follow the rules, you try it. Again, no numbers, spaces or special characters: ").lower()
Итак, если первый игрок получает это, мы двигаемся дальше, если первый игрок терпит неудачу, а второй игрок получает это, мы двигаемся дальше, но если они оба терпят неудачу, написанный код просто продолжит предоставлять игроку 2 выбор слова. По сути, я просто хочу чередовать позиции переменных «First_player» и «Second_player» в этом последнем утверждении с каждым повторением. Есть идеи?
Ответ №1:
Я думаю, что First_player и Second_player, жестко запрограммированные в вашей 5-й строке, могут немного сбить вас с толку.
word_to_guess = input(First_player " has been randomly chosen to pick a word! Please type it in now with no numbers, spaces or special characters: ").lower()
turn_player = First_player
last_player = Second_player
while True:
if word_to_guess.isalpha():
break
turn_player, last_player = last_player, turn_player
word_to_guess = input("OK, " turn_player ", since " last_player " can't follow the rules, you try it. Again, no numbers, spaces or special characters: ").lower()
Ответ №2:
Я думаю, что вы можете использовать переменную flag, которая покажет, чья очередь
word_to_guess = input(First_player " has been randomly chosen to pick a word! Please type it in now with no numbers, spaces or special characters: ").lower()
is_first_player_turn = False
while True:
if is_first_player_turn:
#First player's turn
else:
#Second player's turn
is_first_player_turn = not is_first_player_turn