見ての通り、縦方向のワンライナー、ならぬツーライナーです。
i\ n\ t* p, i, j; m\ a\ i\ n( ){ f\ o\ r( ;; j= "\ U\ U\ U\ O\ H\ "[ i] ,i =- ~i %+ 6, p\ u\ t\ s( &j )) s\ l\ e\ e\ p( 1) ;}
実行すると、次のようになります。
$ gcc -o prog prog.c $ ./prog U U U O H U U U O H
U, U, U, O, H が繰り返し出てくるだけ。頭を左に 90 度傾けて読めば意味がわかるはず。
戦略と狙い
見ての通りの一発ネタです。近年の IOCCC は一発ネタが通らないのが残念と常々思っていたので、あえて挑戦したのですが、玉砕しました。これはかなり自信があっただけに、無念です。
書籍の 107 ページに Ruby の垂直方向スリーライナーを書いたのですが、ふと C 言語でやってみたらツーライナーができてしまったという。本で出し惜しみしたわけではなく、本を書いた後に思いついたのですよ。
プログラムの中に出力文字列を直接埋め込んだのが敗因かなあ。暗号化する手もあったんですが、埋め込んだ方が一行短くなったのと、一発ネタで挑戦するという目的のためにシンプルな方を選択をしてしまいました。それでも前回の IOCCC なら絶対通ったと思うんですが……。(負けず嫌い)
ということで、落選作 4 つでした。当選作は公式公開後にまた。