En primer lugar, tenga en cuenta que la línea v=
y el globo ASCII son los únicos bits del código que cambian en cada generación. Esto nos da un indicio de lo que está sucediendo aquí.
El principio básico es que el modelo de globo se codifica con Zlib::Deflate
en la primera mitad del código, y el segundo medio se expande con Zlib::Inflate
, lo lee, y dibuja el mundo ASCII dentro del nuevo código, con el nuevo v
valor. No hay nada particularmente especial sobre los cambios de 45 °; el código dibujará el globo terráqueo a la rotación que quieras. (De hecho, toma un argumento de línea de comando que especifica el número de grados, si lo desea).
Para obtener más detalles sobre la implementación, le recomiendo ampliar el código fuente y rastrearlo, con esa comprensión básica de cómo quine está diseñado :)
Los comentarios en esa publicación son un comienzo decente. –
+1 para el juego de palabras con "giro". Hay un YouTube que muestra que avanza un grado a través de la rotación completa de 360 grados [aquí] (http://www.youtube.com/watch?v=ktq-22iq-Po) que es divertido de ver. Tenga en cuenta que el único otro texto parpadeante se encuentra en la esquina superior izquierda donde se define 'v'. – RBerteig