Jeśli chcemy wykonać jakiś zaawansowany rysunek (np. Glider) możemy to zrobić na dwa sposoby.
Zagnieżdżanie procedur
Poniżej rysunek przedstawiający Glider:
Więc po pierwsze możemy jechać na 'żywca’, że tak powiem. Narysować jeden duży kwadrat, a następnie podzielić go na mniejsze oraz odpowiednie z nich zamalowując. Jednakże można to zrobić w inny sposób. Zagnieżdżenie procedur. Jak to zrobić? Stworzyć procedurę, która rysuje kwadrat oraz drugą, która ten kwadrat zamalowuje. Kod przedstawia się następująco:
oto kwadrat :a powtórz 4 [np :a pw 90] pw 90 np :a lw 90 już
Zapis powinien być już dla wszystkich zrozumiały. Ale dla utrwalenia opiszę co do czego służy.
W pierwszej linii deklarujemy procedurę o nazwie kwadrat z parametrem :a. Następnie pętla ma za zadanie narysować kwadrat o długości boku podanej w tym parametrze. Dzięki:
pw 90 np :a lw 90
Żółw ustawi się w prawym dolnym rogu figury, skierowany ku górze.
oto kwadrat2 :a kwadrat :a pod np 1 lw 90 np 1 zamaluj ws 1 pw 90 ws 1 opu już
Jest to nic innego jak kwadrat zamalowany. Aby stworzyć nasz cel, którym jest Glider należy w odpowiedniej kolejności wpisać procedurę rysującą kwadrat (kwadrat2), a następnie ustawić się po lewej stronie figury przodem ku góry oraz :a kroków niżej, aby 'dobudować’ kolejne piętro. W tym przypadku rysujemy z góry do dołu.
oto glider :a kwadrat :a kwadrat2 :a kwadrat :a lw 90 np 3*:a pw 90 pod ws :a opu kwadrat :a kwadrat :a kwadrat2 :a lw 90 np 3*:a pw 90 pod ws :a opu kwadrat2 :a kwadrat2 :a kwadrat2 :a już
Myślę, że zbytnio nie zagmatwałem.