定義されたポリシールールに従ってボードの状態を評価する必要がある単純なAIを作成しています。ゲームはテトリスに非常に似ています。ボードの状態と次のN個のピースのシーケンス(Nは変数)を考慮して、現在の最適な動きを決定する必要があります。
つまり、ピースキューの最初のピースを使用する必要があります(複数の「次の」レベルを持つテトリスのように)。
1つ先に進むと、これは非常に簡単です。
bestMove = function(Board board, piece piece)
{
possibleMoves = getPossibleMoves(board, piece)
bestMove = null
bestScore = -INFINITY
boardCp = clone(board)
for (move in possibleMoves)
{
tempBoard = applyMove(boardCp, move)
if (tempBoard.score > bestScore)
{
bestMove = move
bestScore = tempBoard.score
}
boardCp = undoMove(tempBoard, move)
}
return move
}
さて、どうすればこのアルゴリズムをNに一般化できますか?私は再帰の専門家ではないので、助けてくれてありがとう!
PS:私はJavaを使用していますが、どの言語や擬似コードでも大歓迎です。