2010-12-21 9 views
5

Another SO questionには、遠藤裕介の幻想が描かれています。 quineは、唯一の出力として独自のソースコードのコピーを生成するコンピュータプログラムです。これはひねりを加えて行います。 A must-seeこの素晴らしいクインはどのように機能しますか?

しかし、どのように動作するのかわかりません。すべてのポインタ?

+0

その投稿のコメントはまともなスタートです。 –

+1

+1 "ひねり"の言い伝え。見ることが面白い360度の完全な回転[ここ](http://www.youtube.com/watch?v=ktq-22iq-Po)を通して1度進んでいることを示すYouTubeがあります。他の点滅するテキストは、 'v'が定義されている左上にあることに注意してください。 – RBerteig

答えて

6

最初に、v=行とASCIIグローブが、各世代で変更されるコードの唯一のビットであることに注意してください。これは本当にここで何が起こっているかについて少しヒントを与えます。

基本的な原理は、地球のモデルは、コードの前半にZlib::Deflateでエンコードされたことで、後半はそれを読み、Zlib::Inflateでそれを展開し、新しいvで、新しいコードの中にASCIIの世界を描きます値。 45°のシフトについて特に特別なものはありません。コードはあなたが好きなローテーションで地球を描画します。 (実際には、必要に応じて、度数を指定するコマンドライン引数が必要です)。

実装の詳細については、ソースコードを拡張してトレースすることをお勧めします。クインは設計されています:)

関連する問題