Tetris AI (单块, Pierre Dellacherie, 2003)

来自俄罗斯方块中文维基

{{#html:MathJax}}

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

Tetris AI (单块, Pierre Dellacherie, 2003) 是法国俄罗斯方块玩家 Pierre Dellacherie 于 2003 年设计的方块算法所对应的 AI。
这个 AI 呈专家指导风格,有 6 个关键特征,是 2003 年的单块 AI 世界冠军(标准场地平均消出 660,000 行)。

评价函数

$$评价 = -4 * 洞数 - 累计井数 - 行转变数 - 列转变数 - 方块着陆高度 + 侵蚀格数$$ 洞(Hole):正上方存在砖格的空格
井(Well):左右两侧都是砖格或场壁的空格
行/列转变数(Row/Column Transition):所有行/列中“砖空相邻”的总次数[注 1]
着陆高度(Landing Height):列高 + (块高 / 2)[注 2]
侵蚀格数(Number of Eroded Cells):当前方块的消行数乘以填入被消行的方格数

优先级

如果不同摆法存在相同的最高评价值,就再按优先级(priority)分出高低。
第一档:优先靠墙。目标位置的横坐标偏离入场位置的程度越大,就越优先,每格记 100 分。
第二档:优先向左。如果第一档同分,就取向左移的摆法,“居左”这一状态记 10 分。
第三档:优先少转。如果前两档同分,就取旋转次数最少的摆法,每次旋转多扣 1 分。

更多消行数据

表格内容来源:Misakamm 的博客 - 传统规则俄罗斯方块AI技术介绍[1]
 场高[注 3]  平均消行数[注 4]  最大消行数[注 5]
7 15 175
8 42 425
9 105 1,194
10 250 1,955
11 540 3,938
12 1,240 8,549
13 2,700 13,471
14 5,800 37,696
15 13,000 69,243

注释和参考

  1. 场地边界与方块堆的实格等效
  2. 如果触发消行,取消行后的结果
  3. 场宽都是 10
  4. 误差 ±20% 每百局
  5. 数据来自 Misakamm 2014 年的测试
  1. [ 传统规则俄罗斯方块AI技术介绍] . 2014-05-13. [2022-07-29]. (网页存档备份于 2016-01-02).