5

另一个 SO 问题提到了 Yusuke Endoh 的一个奇妙的 quine。quine 是一种计算机程序,它生成自己的源代码副本作为其唯一输出;这个有点扭曲。必看

但我无法弄清楚它是如何工作的。任何指针?

4

1 回答 1

6

首先,请注意,v=行和 ASCII 地球是代码中唯一会在每一代中更改的位。这给了我们一些关于这里真正发生的事情的提示。

基本原理是,地球模型Zlib::Deflate在代码的前半部分用 编码,后半部分用 扩展Zlib::Inflate,读取它,并在新代码中绘制 ASCII 地球,具有新v值。45° 偏移没有什么特别之处。该代码将以您喜欢的任何旋转方式绘制地球。(事实上​​,如果你愿意,它需要一个命令行参数来指定度数。)

有关更多实现细节,我建议扩展源代码并对其进行跟踪,对quine的设计方式有基本的了解:)

于 2010-12-21T22:09:04.190 回答