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 |