1

次の関数を呼び出している間、継続的にエラーが発生します。bestboardエラーは、searchTree.m への呼び出し中に割り当てられていない出力引数(およびおそらく他のもの) です。

function [alpha,bestboard] = searchTree(board,depth,alpha,beta,turn)

if(depth<=0)

    alpha=calculateHeuristic(board,changeTurn(turn));
    bestboard=board;
    return
else
    child=GenerateChild(board,turn);
    a=size(child,3);

    if(turn==2)

        turn=changeTurn(turn);
        for i=1:a    
            [score,aboard]=searchTree(child(:,:,i),depth-1,alpha,beta,turn);
            if(score>alpha)
                alpha=score;
                bestboard=child(:,:,i);
            end
        end

        return
    else

        for j=1:a
            turn=changeTurn(turn);
            [scor,bboard]=searchTree(child(:,:,j),depth-1,alpha,beta,turn);
            if(scor<beta)
                beta=scor;
                bestboard=child(:,:,j);
                alpha=beta;
            end

        end

    return
    end
end
4

1 に答える 1

3

それは、 with no else でbestboard割り当てられているためです。ifあなたの関数では、 ifturn ~= 2scor >= betaand depth > 0thenbestboardは割り当てられません。おそらく最初にデフォルト値を割り当てることを検討してください。

于 2013-04-11T11:53:21.467 に答える