Pythonの最高の使用
受賞者:Yusuke Endoh
動作・解説にジャンプ »
引用元:https://www.ioccc.org/2018/endoh2/prog.c
審査員・作者による説明:https://www.ioccc.org/2018/endoh2/hint.html
オウムの絵が回るQuine。
$ gcc -o prog prog.c $ ./prog
この出力は色のためのエスケープシーケンスが混ざっているが、そのままコンパイルできる。
$ ./prog > tmp.c $ gcc -o tmp tmp.c $ ./tmp
同じことを合計10回繰り返すと、赤いオウムに戻る。詳しくはデモ動画を参照のこと。
新しいハッカーが好きなオウムと、古いハッカーが好きなオウムのネタをかけ合わせたハイコンテクストな作品。 1つはParty Parrotと呼ばれるインターネットミーム。 もう1つはイギリスのコメディテレビ番組『空飛ぶモンティ・パイソン』の『死んだオウム』というスケッチ(コント)。 賞名の”Python”はプログラミング言語のPythonではなく、モンティ・パイソンを指している(なお、プログラミング言語のPythonの名前はモンティ・パイソンに由来している)。
prog.cの形状は『死んだオウム』(dead parrot)を踏まえて”Undead Parrot”。 出力のソースコードの一番下の行に出てくるメッセージは、『死んだオウム』に出てくる、オウムが死んだことを多種多様な表現で説明するセリフの主語をIにしたもの。 また、下から2行目の__<-_Source_of_Parrots__という文字列がある行には、http://cultofthepartyparrot.com/のURLが隠されている(オウムの胴体で見えなくなっている)。
__<-_Source_of_Parrots__
http://cultofthepartyparrot.com/
見飽きたQuineネタではあるが、10枚のオウムの絵と10個のセリフのデータを持たせるのはそれなりに大変。 オウムの絵は輪郭データのみを保存していて、胴体の塗りつぶしは実行時に行っている。 これらのデータはたぶんbyte pair encodingで圧縮されている。
hint.textの作者コメントはオウムのアスキーアートのみ。 “It’s”はモンティ・パイソンの番組のオープニングで言われるセリフ。 審査員コメントの“And now for something completely different”も同様にオープニングで使われるセリフ。