MiniMax算法实现井字棋

使用MiniMax算法实现井字棋,下面是问题的记录
源代码地址:gitee仓库地址


python中列表的浅复制和深复制

在函数传递中,如果实参传递可变数据类型(list、set、dict)实际上传递的是引用,在函数中的改变将直接影响原始数据
如下图所示,在传递参数时,如果直接传递board,在函数中的改变将直接影响原始数据

def minimax(board):
    """得到当前棋盘的执棋手"""
    current_player = player(board=board)#在函数中的改变将直接影响原始数据
    tem_board = copy.deepcopy(board)
    best = []
    score = 0
    if current_player == X:
        best = [-1, -1, -infinity]
    else:
        best = [-1, -1, infinity]
    next_step = actions(board=tem_board)
  • 浅复制:对于所有数据类型均做浅复制,即对于基本数据类型做深拷贝,对组合数据类型做浅拷贝,基本数据类型与原来不相关,组合数据类型与原来相关
los = [1,2,[1,2]]
lis = los.copy()
los[1] = 0
los[2][0] = 0
print(los)
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值