

有一个全球性的社群致力于寻找在《俄罗斯方块》中挑战自我的新方法,从 竞速通关经典益智游戏 到 技术上“通关”它。但最新的壮举并非新发现的隐藏故障或高分——而是一种全新的游戏方式。
Thomas Rinsma,一位安全分析师和业余爱好者,最近找到了在 PDF 文件 中运行《俄罗斯方块》版本的方法。根据他最近在他的 个人网站帖子 中发布的信息,该信息随后在 1 月 15 日被 BoingBoing 突出报道,Rinsma “纯粹为了好玩”地着手了这个项目,在了解了 PDF 的 JavaScript API 的潜在实现方式后。其结果是 Rinsma 称之为 PDFTRIS 的创新版本。

“我意识到可能存在足够多的 I/O(输入/输出)可能性来实现一个游戏,”他写道。“I/O”代表“输入/输出”,指的是计算机与用户之间的通信。
Rinsma 解释说,PDF 可以支持一些功能,例如在 Adobe Acrobat/Reader 等软件中打开时支持动态内容脚本,这一点已经“相对广为人知”。然而,Mozilla Firefox 和 Google Chromium 的各自 PDF 阅读器 PDF.js 和 PDFium 也支持其中的一些脚本功能。
[ 相关:俄罗斯方块是无限的吗?青少年世界冠军达到了传说中的“重生” ]
从那里开始,对于普通人来说会变得有些复杂,但无论如何,最终的结果是一个包含 10x20 网格字段按钮的 PDF。这些按钮根据 JavaScript 输入,在着色和空白方块之间交替,允许玩家使用预编程的键盘指令来移动和转换俄罗斯方块的方块——这是指像《俄罗斯方块》方块中的四块形状的官方术语。
“在两个引擎中找到一个功能上的交集有点棘手,但最终事实证明,显示/隐藏注释‘字段’可以很好地创建单色像素,并且可以通过在文本输入框中键入来实现键盘输入,”Rinsma 在 Hacker News 的帖子中写道。
加入文件自动循环和重新加载每个命令的功能,你就拥有了一个功能齐全的《俄罗斯方块》游戏。随着你分数的增加,它甚至会加速。任何有兴趣了解 PDFTRIS 工作原理的人,都可以查看 Rinsma 在 GitHub 上提供的开源文件。
对于知情人士来说,能够在 PDF 文件中玩电子游戏,会引发一个非常特定、非常著名的 编程社区问题。碰巧的是,Rinsma 已经有了答案:是的,PDF 也可以 运行《毁灭战士》。