Во-первых, обратите внимание, что строка v=
и глобус ASCII - единственные биты кода, которые меняются при каждом поколении. Это дает нам подсказку о том, что на самом деле здесь происходит.
Основной принцип заключается в том, что модель глобуса была закодирована с помощью Zlib::Deflate
в первой половине кода, а вторая половина расширяет его с помощью Zlib::Inflate
, читает его и рисует глобус ASCII в новом коде новое значение v
. В сдвигах на 45 ° нет ничего особенного; код нарисует земной шар в любом вращении, которое вам нравится. (На самом деле, он принимает аргумент командной строки, определяющий количество градусов, если хотите.)
Для получения более подробной информации о реализации, я бы рекомендовал расширить исходный код и проследить его через это с базовым пониманием того, как разработан quine:)