1.相信不少小伙伴都玩过一款小游戏,井字棋,那么,如何让代码实现人机对弈井字棋呢?
2.具体代码如下:
def display_board(b):
“”“显示棋盘”""
print("\t{0}|{1}|{2}".format(b[0], b[1], b[2]))
print("\t_||")
print("\t{0}|{1}|{2}".format(b[3], b[4], b[5]))
print("\t_||")
print("\t{0}|{1}|{2}".format(b[6], b[7], b[8]))
def legal_moves(board):
“”"“返回可落子的位置列表”""
moves = []
for i in range(9):
if board[i] in list(“012345678”):
moves.append(i)
return moves
def get_player_move(board):
“”"“询问并确定玩家(player)选择落子位置,无效位置时重复询问”""
move = 9 # 初始值9为错误信息
while move not in legal_moves(board):
move = int(input(“请选择落子位置(0-8)”))
return move
def get_computer_move(board, computer_letter, player_letter):
“”“计算人工智能AI的落子位置, Tic Tac Toe Ai核心算法”""
board_copy = board.copy() # 拷贝棋盘, 不影响原来的
# 规则1: 判断如果某位置落子可以获胜,则选择该位置
for move in legal_moves(board_copy):
board_copy[move] = computer_letter
if