l oop не прерывается между вызовом двух функций - игра с галочкой - уточните, пожалуйста - PullRequest
0 голосов
/ 05 апреля 2020

Это игра с галочкой, и пользователь должен выбрать позицию для размещения маркера X или O в этой позиции:

def place_marker(board, marker, position):
    board[position] = marker

def player_choice(board):
    position = 0
    while position not in [1,2,3,4,5,6,7,8,9] or not space_check(board, position):
        ask = int(input("Enter number between 1 and 9: "))
    return position 

, поэтому, когда я вызываю вышеуказанную функцию:

position = player_choice(the_board)
place_marker(the_board, player1_marker, position)

l oop не помещает маркер в вывод и продолжает спрашивать:

Введите число от 1 до 9: 1

Введите число от 1 до 9: 2

Введите число от 1 до 9: 3

Введите число от 1 до 9: 4

Введите число от 1 до 9 : 5

1 Ответ

0 голосов
/ 05 апреля 2020

l oop не прерывается и продолжает запрашивать ввод, потому что переменная position равна 0, и когда когда-либо итерация l oop не изменяет значение позиции, то есть всегда 0, следовательно, условие всегда верно.

Попробуйте что-то вроде,

def player_choice(board):
    position = 0
    while position not in [1,2,3,4,5,6,7,8,9] or not space_check(board, position):
        position = int(input("Enter number between 1 and 9: "))
    return position 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...