Na początku żółw obraca się, i powtarza rysowanie pięter. Rysuje "n" pięter. W każdym kolejnym powtórzeniu, rysuje o 2 odcinki mniej, stąd "powtórz :n-npw", czyli powtórz razy "n" odjąć numer powtórzenia. Po narysowaniu każdego z pięter, żółw przechodzi piętro wyżej, aż narysuje wszystkie (czyli "n" pięter). Odtąd pozostaje narysowanie dwóch ostatnich linii, i skierowanie żółwia ku górze strony.
==========
Oczywiście można zmieniać nazwy procedur; można obie wstawić do Logomocji, i drugą nazwać np. "DYWAN2".
Oto moja propozycja rozwiązania:
oto DYWAN :n
pw 30 powtórz :n[powtórz :n-npw[np 50 pw 120 np 50 lw 120]np 50 lw 120 np 50*:n-npw*50 pw 120]
powtórz 2[pw 120 np :n*50]pw 90
już
.
Dowód na to, że żółw przechodzi każdy odcinek dokładnie jeden raz:
oto DYWAN :n
pw 30 czekaj 200 powtórz :n[powtórz :n-npw[np 50 czekaj 200 pw 120 czekaj 200 np 50 czekaj 200 lw 120 czekaj 200]
np 50 czekaj 200 lw 120 czekaj 200 np 50*:n-npw*50 czekaj 200 pw 120 czekaj 200]
powtórz 2[pw 120 czekaj 200 np :n*50 czekaj 200]pw 90
już
I wyjaśnienia.
Na początku żółw obraca się, i powtarza rysowanie pięter. Rysuje "n" pięter. W każdym kolejnym powtórzeniu, rysuje o 2 odcinki mniej, stąd "powtórz :n-npw", czyli powtórz razy "n" odjąć numer powtórzenia. Po narysowaniu każdego z pięter, żółw przechodzi piętro wyżej, aż narysuje wszystkie (czyli "n" pięter). Odtąd pozostaje narysowanie dwóch ostatnich linii, i skierowanie żółwia ku górze strony.
==========
Oczywiście można zmieniać nazwy procedur; można obie wstawić do Logomocji, i drugą nazwać np. "DYWAN2".