现在你可以在 PDF 文件中玩“俄罗斯方块”了

“能运行俄罗斯方块吗?”是否成了新的“能运行毁灭战士吗?”
First version of Tetris playing on Samsung desktop PC
在坦佩雷列宁博物馆展出的第一版俄罗斯方块。它显示在 SyncMaster 750s 显示器上,访客可以使用 Key Tronic 键盘进行游戏。图片来源:维基共享资源

有一个全球性的社群致力于寻找在《俄罗斯方块》中挑战自我的新方法,从 竞速通关经典益智游戏技术上“通关”它。但最新的壮举并非新发现的隐藏故障或高分——而是一种全新的游戏方式。

Thomas Rinsma,一位安全分析师和业余爱好者,最近找到了在 PDF 文件 中运行《俄罗斯方块》版本的方法。根据他最近在他的 个人网站帖子 中发布的信息,该信息随后在 1 月 15 日被 BoingBoing 突出报道,Rinsma “纯粹为了好玩”地着手了这个项目,在了解了 PDF 的 JavaScript API 的潜在实现方式后。其结果是 Rinsma 称之为 PDFTRIS 的创新版本。

Screenshot of Tetris played in PDF file
PDFTRIS 运行中。图片来源:Popular Science

“我意识到可能存在足够多的 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 也可以 运行《毁灭战士》

 

更多优惠、评测和购买指南

 
Andrew Paul Avatar

Andrew Paul

特约撰稿人

Andrew Paul 是 Popular Science 的特约撰稿人。


© .