Согласно спецификации,
Черные цветовые блоки и края программы ограничивают процесс выполнения программы. Если интерпретатор Piet пытается переместиться в черный блок или от края, он останавливается, и CC переключается. Интерпретатор затем пытается переместиться от его текущего блока снова. Если это перестало работать во второй раз, когда DP перемещен по часовой стрелке один шаг. Эти попытки повторяются с CC и DP, изменяемым между альтернативными попытками. Если после восьми попыток интерпретатор не может оставить свой блок текущего цвета, нет никакого выхода, и программа завершается.
Если я не читаю его неправильно, это противоречит поведению примера последовательности Fibonacci здесь: http://www.dangermouse.net/esoteric/piet/fibbig1.gif (от: http://www.dangermouse.net/esoteric/piet/samples.html)
А именно, почему DP поворачивает налево в (0,3) ((0,0) являющийся (вершина, оставленная)), когда это поражает левый край? На данном этапе и DP и CC ОСТАВЛЯЮТ, таким образом, моим чтением последовательность должна затем быть:
Поведение, обозначенное трассировкой, кажется, что DP повернут полностью, оставив CC в ЛЕВОМ.
Что я неправильно понял?
Ваш анализ кажется правильным, но в примере есть ошибка. Белый блок в точке (1,1) должен быть черным. Вы можете проверить это, взяв образец изображения и выполнив его.
Обратите внимание, что по крайней мере три из интерпретаторов, ссылки на которые даны на странице DMM, имеют ошибки - интерпретатор Марка Майчера помечен как таковой, интерпретатор Сильвена Тинтилье обходит и выводит правильно, но меняет значение in и inn из спецификации (this - версия без ошибок), а PietDev неправильно обходит цветные блоки.
EDIT: другие белые блоки, вероятно, также должны быть черными, например, блок на (6,3).