Po pierwsze, należy zwrócić uwagę, że linia v=
i globus ASCII to jedyne fragmenty kodu, które zmieniają się w każdym pokoleniu. To daje nam odrobinę wskazówki, co naprawdę się tutaj dzieje.
Podstawową zasadą jest to, że model globus został zakodowany z Zlib::Deflate
w pierwszej połowie kodu, a druga połowa rozszerza ją Zlib::Inflate
, odczytuje go i wyciąga kulę ASCII w ramach nowego kodu z nowym v
wartość. W zmianach 45 ° nie ma nic szczególnie specjalnego; kod narysuje kulę ziemską przy dowolnym obrocie, który lubisz. (W rzeczywistości zajmuje argument w wierszu poleceń określający liczbę stopni, jeśli chcesz.)
Aby uzyskać więcej informacji na temat implementacji, polecam rozszerzenie kodu źródłowego i śledzenie za jego pośrednictwem, z podstawową wiedzą na temat tego, w jaki sposób quine jest zaprojektowany :)
Komentarze na temat tego wpisu są przyzwoitym początkiem. –
+1 za kalambur "twist". Jest taki YouTube, który pokazuje, że kroczy o 1 stopień, obracając się o 360 stopni [tutaj] (http://www.youtube.com/watch?v=ktq-22iq-Po), co jest zabawne do oglądania. Zauważ, że jedyny inny migoczący tekst znajduje się w lewym górnym rogu, gdzie zdefiniowano 'v'. – RBerteig