引用元:https://www.ioccc.org/1990/dds.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1990/dds.hint
動作
BASICインタプリタ。付属するLANDER.BASを起動する例。
$ gcc -o dds dds.c
$ ./dds
Ok
OLD LANDER.BAS
Ok
RUN
You aboard the Lunar Lander about to leave the spacecraft.
Ready for detachment
-- COUNTDOWN --
10
9
8
7
6
5
4
3
2
1
0
You have left the spacecraft.
Try to land with velocity less than 5 m/sec.
Meter readings
--------------
Fuel (gal):
500
Velocity (m/sec):
70
Height (m):
1000
How much fuel will you use?
解説
言語処理系の作品。
これまでの同系統の作品と比べると、多くのコマンドや演算子がサポートされていて、丁寧に作られている。
難読化としては、ブロック上にしただけで特筆することはないと思う。
サンプルコードであるLANDER.BASはLunar Lander(月面着陸ゲーム)。
ターン毎に現在の燃料の残量、対地速度、高さが表示され、燃料の使用量を調整して地上に軟着陸することを目指す、レトロなテキストベースゲーム(1969年からあるらしい)。
この記事はネタバレ解説なので単純な攻略法を書くと、燃料をまったく使わずに落ちていき、墜落の直前で全量を噴射するとクリアできる。
&&
の後にvoid
を返す関数(free()
)を書けなくなっていたので、そこだけ修正が必要。
パッチ
パッチをダウンロード