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
。您也没有 return
从 player_input
获取任何内容,因此 position
将设置为 None
。在board_placement
中,需要传入player1
和player2
作为参数。您还将 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)
我正在构建一个基本的井字游戏(编码新手!)
我创建了一个棋盘并试图将用户输入附加到游戏棋盘。这个想法是将用户输入的索引位置作为整数与板上的索引位置相匹配。我目前有脚本打印电路板并接受输入,但它不会附加到电路板上。代码如下(我暂时排除了游戏逻辑)(假设问题出在棋盘放置函数和 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
。您也没有 return
从 player_input
获取任何内容,因此 position
将设置为 None
。在board_placement
中,需要传入player1
和player2
作为参数。您还将 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)