Best game

最高のゲーム

受賞者:John Tromp and Freek Wiedijk

引用元:https://www.ioccc.org/1989/tromp.bsd.c

審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1989/tromp.bsd.hint

動作

端末でテトリス

$ gcc -O -o tromp.bsd tromp.bsd.c

$ ./tromp.bsd
端末でテトリスがプレイできる
図:端末でテトリスがプレイできる

デフォルトの操作方法は、jが左、lが右、kが回転、スペースが落とす、pがポーズ、qが終了。

解説

端末のエスケープシーケンスを使った初の作品で、Best game枠の最初の作品。

コマンドラインの第1引数で落下速度を、マンドラインの第2引数で操作方法を変えられるとのこと(無指定の場合は2秒とjkl pqが指定されたという扱い)。

ハッカーの遊びでテトリスと言うと退屈に感じてしまうかもしれない。 しかしテトリスが世界的に売られ始めたのは1988年ごろなので、当時はブームの最中ということになる。 この作品がテトリスをハッカーの遊びの定番ネタとするのに一役かったのかもしれない。

端末でポータブルにゲームを作るというのは意外と難しい話で、BSD版とSystem V版が用意されている。 現代のLinuxはSystem Vに近いので、後者のほうが動かしやすいかもしれないが、BSD版でも少しの修正で動作した。 次の変更が必要だった。

なお、-Oをつけないと動作しなかった。おそらくまだ修正が必要なのだと思うが、詳しくは調べていない。

余談だが、このコードはscreenコマンドのテストコードとして含まれているので、screenをインストールしている環境では知らないうちに入っていることもある。 Ubuntu 20.04では/usr/share/doc/screen/terminfo/tetris.cに置かれていた。

パッチ

パッチをダウンロード