Tic Tac Toe 问题使用索引位置将用户输入附加到棋盘

Tic Tac Toe Issues Appending User Input To Board Using Index Positions

我正在构建一个基本的井字游戏(编码新手!)

我创建了一个棋盘并试图将用户输入附加到游戏棋盘。这个想法是将用户输入的索引位置作为整数与板上的索引位置相匹配。我目前有脚本打印电路板并接受输入,但它不会附加到电路板上。代码如下(我暂时排除了游戏逻辑)(假设问题出在棋盘放置函数和 while 游戏循环中):

board = [' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']

def print_board(board):
    print('    ','|','    ','|','    ')
    print('  '+board[7],' |  '+board[8],'  |  '+board[9])
    print('    ','|','    ','|','    ')
    print('_________________')
    print('    ','|','    ','|','    ')
    print('  '+board[4],' |  '+board[5],'  |  '+board[6])
    print('    ','|','    ','|','    ')
    print('_________________')
    print('    ','|','    ','|','    ')
    print('  '+board[1],' |  '+board[2],'  |  '+board[3])
    print('    ','|','    ','|','    ')
    
def player_input():
    selection = ''
    accept_range = [1,2,3,4,5,6,7,8,9]
    
    while selection not in accept_range:
        player1 = int(input('Player 1: Pick a number 1 through 9 on your keypad to put an X on the board: '))
        player2 = int(input('Player 2: Pick a number 1 through 9 on your keypad to put an O on the board: '))
        
        if player1 not in accept_range:
            print('Please enter another number 1-9')
        else:
            player2
            
def board_placement():
    if player1 in accept_range:
        return board.append[player1]('X')
    else 
        if player2 in accept_range:
        return board.append[player2]('O')

game = True 

while game:
    #Print Board
    board = print_board(board)
    #Ask for An Initial Response
    position = player_input()
    #Place response 
    placement = board_placement(board) 

您的代码有几处错误。 while selection not in accepted_range 永远不会重复,因为你永远不会更新 selection。您也没有 returnplayer_input 获取任何内容,因此 position 将设置为 None。在board_placement中,需要传入player1player2作为参数。您还将 print_board 的结果分配给登机,这是 None 因为它没有 return 任何东西。 board_placement 同样的问题。此外,追加会将一个项目添加到列表中,而在这里您只是试图修改特定索引处的列表。在这里,我修改了你的代码

board = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']


def print_board(board):
    print('    ', '|', '    ', '|', '    ')
    print('  ' + board[7], ' |  ' + board[8], '  |  ' + board[8])
    print('    ', '|', '    ', '|', '    ')
    print('_________________')
    print('    ', '|', '    ', '|', '    ')
    print('  ' + board[4], ' |  ' + board[5], '  |  ' + board[6])
    print('    ', '|', '    ', '|', '    ')
    print('_________________')
    print('    ', '|', '    ', '|', '    ')
    print('  ' + board[1], ' |  ' + board[2], '  |  ' + board[3])
    print('    ', '|', '    ', '|', '    ')


def player_input():
    accept_range = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    player1 = player2 = ''
    while player1 not in accept_range:
        player1 = int(input('Player 1: Pick a number 1 through 9 on your keypad to put an X on the board: '))
    while player2 not in accept_range:
        player2 = int(input('Player 1: Pick a number 1 through 9 on your keypad to put an O on the board: '))

    return player1, player2

def board_placement(player1, player2):
    # we know player1 and player2 will be in accept_range because of player_input
    board[player1] = 'X'
    board[player2] = 'O'


game = True

while game:
    # Print Board
    print_board(board)
    # Ask for An Initial Response
    player1, player2 = player_input()
    # Place response
    board_placement(player1, player2)