Zdefiniuj procedurę bez parametrów, o nazwie PARKIET, która tworzy na środku ekranu możliwie duży rysunek, taki jak na rysunku poniżej:
Rozwiązanie tego zadania jest niedostępne
Pionek (żółw) porusza się ruchem konika szachowego po nieskończonej kwadratowej siatce punktów jak na rysunku poniżej:
Pionek, znajdując się w dowolnym punkcie siatki, może zawsze wykonać jeden z ośmiu ruchów. Ruchy te numerujemy i opisujemy następująco:
Każdą drogę żółwia po siatce można zakodować w postaci liczby, w której występują wyłącznie cyfry od 1 do 8 - numery kolejnych ruchów.Na przykład:
Zdefiniuj procedurę DROGA :kd, która dla danego kodu drogi, narysuje tę drogę na ekranie. Załóż, że punktem startu jest środek ekranu. Siatki kwadratowej nie musisz rysować.
DROGA 12318 | jest łamana łącząca punkty A i B na powyższym rysunku, przy czym punkt A odpowiada środkowi ekranu. |
---|---|
DROGA 45765 | jest łamana łącząca punkty A i B na powyższym rysunku, przy czym punkt B odpowiada środkowi ekranu. |
Rozwiązanie zadania powinno wykonywać zadanie i nie być trudne do zrozumienia. Z tego powodu listę dostępnych ruchów najlepiej przechowywać jako listę dostępnych przesunięć. Rysowanie ścieżki będzie się odbywać poprzez wybieranie przesunięcia wskazanego przez i-tą cyfrę.
Kod głównej funkcji DROGA wygląda następująco:
(2.) Deklaracja dostępnych przesunięć i (3.) wymuszenie przekonwertowania liczby na słowo. (4.) Ustalenie rozmiaru siatki po której porusza się żółw. (5.) Dla każdej cyfry (6. - 7.) i współrzędnej wylicz iloczyn :a i wartości przesunięcia w danej osi. (8.) Dokonaj przesunięcia.
Zdefiniuj funkcję WSPAK :kd, która dla danego kodu drogi znajduje kod drogi po śladach w przeciwnym kierunku od końca do początku. Poniżej przedstawiamy przykładowe wyniki:
WSPAK 12318 | jest liczba 45765 |
---|---|
WSPAK 45765 | jest liczba 12318 |
WSPAK 87681 | jest liczba 54234 |
Rozwiązanie tego zadania jest bardzo podobne do poprzedniego rozwiązanie. Różni się interpretacją odczytanych danych.
(2.) Deklaracja dostępnych przesunięć i (3.) wymuszenie przekonwertowania liczby na słowo. (4.) Zadeklaruj puste słowo wynikowe. (5.) Dla każdej cyfry (6.) pobierz element, a następnie (7.) odwróć jego współrzędne. Ze względu na fakt, że kod ma być wspak to obie współrzędne należy pomnożyć razy -1. (8.) Na koniec każdej iteracji dopisz pozycję takiego przesunięcia na liście dostępnych ruchów. Na koniec (10.) zwróć zmienną :w.