【发布时间】:2013-02-19 18:43:02
【问题描述】:
我正在创建一个需要评估棋盘状态的简单 AI 根据定义的策略规则。游戏很像俄罗斯方块: 您需要根据棋盘状态和 下 N 个片段的序列(N 是一个变量)。
换句话说,您必须使用片段队列中的第一个片段(如俄罗斯方块与多个 “下一个”级别)。
对于一步到位,这很简单:
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,但欢迎使用任何语言或伪代码!
【问题讨论】:
-
这是java吗?在我看来更像是 javascript。
-
没关系,我只是尽量避免原始伪代码!
-
哈哈,只是确保您不希望 java 解释它,现在正在寻找答案。
标签: java algorithm recursion artificial-intelligence