Tetris AI (单块, Roger Llima, 1996)

来自俄罗斯方块中文维基

{{#html:MathJax}}

“Tetris AI”意在提供一个易于识别的通称,不代表 AI 是官方的算法或隶属于任何(官方的)俄罗斯方块游戏。

Tetris AI (单块, Roger Llima, 1996) 是西班牙方块 AI 开发者 Roger E. Llima 于 1996 年设计的方块算法[注 1]所对应的 AI。
这个 AI 的特征由 50 套系数的 18 代遗传算法得出,有 6 个关键特征,平均消行 50,000。[注 2]

评价函数

$$评价 = -260 * 边长 - 110 * 列高峰值 - 450 * 洞数 - 190 * 总大坑数 - 80 * ehole + 290 * 降落距离$$ 如果当前摆法会触发消行,边长按消行后的方块堆来取。
洞(Hole):正上方存在砖格的空格
大坑(Pit):左右两侧都是砖格或场壁的空格群(至少深 2 格),每一处深 p 的大坑在数量上计为 p-1
此处的 ehole 是个判断填洞难度的函数,其关键变值要素是 hol[ (width * (y-1)) + (x-1) ]
这个要素只会根据洞的 x 和 y 情况取 0 或 1,复杂的洞要累加取值,y 高出当前方块行位 2 行以上的按 2 计。

注释

  1. Laurent Bercot 和 Sebastien Blondeel 为这个决策算法提供过思路上的帮助
  2. 这部分数据来自 Roger Llima 的 xtris 的说明文件