在使用input函数读取玩家输入时,如果用户输入无效或不合法,需要提示用户重新输入,并且使用while循环实现输入的验证。以下是使用while循环对tic-tac-toe游戏中input函数输入的验证示例:
board = [[' ', ' ', ' '], [' ', ' ', ' '], [' ', ' ', ' ']]
def print_board(board):
print(' | | ')
print(' ' + board[0][0] + ' | ' + board[0][1] + ' | ' + board[0][2])
print(' | | ')
print('-----------')
print(' | | ')
print(' ' + board[1][0] + ' | ' + board[1][1] + ' | ' + board[1][2])
print(' | | ')
print('-----------')
print(' | | ')
print(' ' + board[2][0] + ' | ' + board[2][1] + ' | ' + board[2][2])
print(' | | ')
def get_move(board):
while True:
move = input("请输入您的行动,格式为x,y:")
if move == 'q':
return None
try:
row, col = move.split(',')
row = int(row)
col = int(col)
if row < 0 or row > 2 or col < 0 or col > 2:
print("输入有误!")
elif board[row][col] != ' ':
print("该位置已经被占用!")
else:
return row, col
except Exception as e:
print("输入有误!")
print("错误信息:", e)
def play_game():
print("欢迎来到井字游戏!")
print_board(board)
while True:
move = get_move(board)
if move is None:
print("游戏结束!")
break
row, col = move
board[row][col] = 'X'
print_board(board)
play_game()
在上面的代码中,get_move函数使用了while循环来验证用户输入的有效性。如果用户输入有误,循环会一直进行下去,直至输入正确或用户输入"q"终止游戏。