求剧情
算法的乐趣 · 第六十七节

《算法的乐趣》第六十七节

当两个局面的评分相同时,PierreDellacherie算法用优先度决定取舍:板块放在左侧(1~5列)时,优先度等于水平平移次数乘100再加10和旋转次数……

当两个局面的评分相同时,PierreDellacherie算法用优先度决定取舍:板块放在左侧(1~5列)时,优先度等于水平平移次数乘100再加10和旋转次数;放在右侧(6~10列)时不加10。平移次数指板块从中间下落点移到目标位置所需移动的格数,旋转次数指摆放前所需的旋转操作数。

由于俄罗斯方块已被证明是NP完全问题,现有AI都采用穷举法,由摆放动作引擎和评估函数两部分组成。实现时用12×22二维数组表示10×20的游戏区域,边界用大于0的值标记;7种板块各用4×4矩阵预先存好所有旋转形态,形状编号加数组下标即可取出对应形态。评估函数依次统计落点高度、被消除行中属于当前板块的方块数、行/列变换数、空洞数和井深,井深求和用预计算的表直接查得。最后按式(22-1)算出评估值,取最大者;评分相同则按优先度选,旋转次数即shape_r数组下标。

‹ 上一章目录下一章 ›

全部 76 章