Best Use of Light and Spheres

ライトと球の最高の使い方

受賞者:Anders Gavare

引用元:https://www.ioccc.org/2004/gavare.c

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

動作

レイトレーサ。 現代の環境でも生成に数十秒程度はかかる。

$ gcc -o gavare gavare.c

$ ./gavare > ioccc_ray.ppm

$ convert ioccc_ray.ppm ioccc_ray.png

出力は次の通り。

球がIOCCC RAYという形に並んでいるレイトレーシング画像
図:球がIOCCC RAYという形に並んでいるレイトレーシング画像

この出力は一時期、IOCCCのサイトでロゴとして使われていた。

解説

キーワードを使わずに書かれている。 コードを紙に印刷したとき、ハイライトされるキーワードはトナーやインクを多く使うので地球環境に悪いから、とのこと。

すべての変数はintとして宣言されることになる。 それでも、intのサイズやエンディアンには依存しない配慮がされている。 おかげで現代でも変更なしでコンパイル・実行できた。