ai.py 文件源码

python
阅读 42 收藏 0 点赞 0 评论 0

项目:CrossboneGames 作者: adrianstaniec 项目源码 文件源码
def __add_third_in_line(matrix, player, win_or_defend):
    """Look for 2 in line and try to win or defend in 1 move"""
    done = False
    opponent = model.opponent(player)
    # = horizontals
    for row in range(3):
        if not done:
            done, line = win_or_defend(matrix[row, :], player)
            if done:
                matrix[row, :] = line
                # || verticals
    for col in range(3):
        if not done:
            done, line = win_or_defend(matrix[:, col], player)
            if done:
                matrix[:, col] = line
    if not done:
        # \ diagonal
        done, line = win_or_defend(matrix.diagonal(), player)
        if done:
            matrix[np.diag_indices(3)] = line
    if not done:
        # / diagonal
        done, line = win_or_defend(np.fliplr(matrix).diagonal(), player)
        if done:
            np.fliplr(matrix)[np.diag_indices(3)] = line
    if not done:
        return matrix, player
    else:
        return matrix, opponent
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号