Strona o programowaniu w języku LOGO

Wiele żółwi

Tworzenie nowego żółwia

Żółw jest podstawowym obiektem środowiska Imagine. Projekty są bardziej interesujące, kiedy używamy wielu żółwi zamiast jednego. Wiele żółwi może równolegle rysować oraz pomagać tworzyć złożone rysunki na ekranie. Liczba żółwi jest ograniczona jedynie przez hardware, na którym pracuje Imagine.

Kiedy uruchomimy Imagine, istnieje tylko jeden żółw o nazwie ż1 (jeśli nie zmienimy tej standardowej reguły) żyjący na stronie s1. Kolejne żółwie można tworzyć następującymi metodami:

  • klikając w przycisk Nowy żółw paska narzędzi, a potem na stronie lub planszy,
  • poleceniem nowy "Żółw [ … ustawienia …] tworzącym nową jednostkę klasy Żółw,
  • poleceniem nowyObiekt "Żółw ustawienie wartość … działającym tak samo jak nowy,
  • poleceniem nowaKlasa "Żółw "mojaKlasa [ … ] tworzącym klasę żółwi bazujących na klasie Żółw, prawdopodobnie z dodanymi lub zmienionymi pewnymi cechami, zmiennymi obiektu, procedurami, zdarzeniami itp. Potem poleceniem nowy lub nowyObiekt można utworzyć nowego żółwia bazującego na klasie mojaKlasa,
  • poleceniem nowy lub nowyObiekt tworzącym nowego żółwia na bazie innego żółwia użytego jako prototyp.
    Na przykład nowy "ż1 [postać :gwiazda pisak pod].

Każdy żółw żyje na stronie lub planszy nazywanej miejscem żółwia.

Żeby odwołać się do żółwia żyjącego na innej stronie należy oprócz nazwy żółwia podać nazwę strony, na przykład:

? s3'ż4'np 30


? proszę "s3'ż3 [np 50]

Usunąć żółwia lub żółwie można w następujący sposób:

? usuńObiekt "ż22

? usuńObiekt [ż2 ż4 ż20]

? usuńObiekt wszystkie

W danym momencie żółw jest aktywny lub nieaktywny. Żółwie pamiętane są na dwóch listach:

  • wszystkie – lista wszystkich żółwi żyjących na stronie lub planszy.
  • kto – lista wszystkich aktualnie aktywnych żółwi.

Dwie ważne reguły podczas pracy z wieloma żółwiami:

  • Dowolne polecenie dotyczące żółwia (np. przesunięcie do przodu) jest wykonywane równolegle przez wszystkie aktywne żółwie.
  • Wynikiem dowolnej funkcji dotyczącej żółwia (np. funkcja zwracająca pozycję żółwia) jest wartość odpowiadająca ustawieniu pierwszego aktywnego żółwia.

Procedury zarządzające wieloma żółwiami

polecenie skrót wyjaśnienie typ
każdy
lista instrukcji
  Każdy aktywny żółw wykonuje daną listę instrukcji.
Chwilowo tylko pierwszy aktywny żółw wykonuje wszystkie instrukcje danej listy. Następnie to samo robi drugi aktywny żółw, trzeci, itd.



oto jołki.połki
 usuńObiekt wszystkie
 powtórz 36 [
 nowy "żółw [kierunek (10 * npw)
  pisak pod
  postać [ukp "niebieski ugp 3 np 55
  ukp "czerwony kropka 15]]]
 słuchaj wszystkie
 bezKońca [każdy
  [np bp kto pw bp kto czekaj 1]]
już

Polecenie każdy jest podobne do polecenia proszę, różnica polega na tym, że w poleceniu każdy daną listę instrukcji wykonuje jeden żółw po drugim, a w przypadku polecenia proszę instrukcje są wykonywane równolegle przez wszystkie żółwie będące parametrem polecenia.

P
proszę
żółwie
lista instrukcji
  Dany żółw lub dane żółwie wykonują polecenia zawarte na danej liście instrukcji. Te żółwie mogą być aktywne lub nie – na czas wykonywania polecenia staną się chwilowo aktywne. Inaczej niż w przypadku polecenia każdy, dane żółwie wykonują polecenia z listy instrukcji równolegle. P
słuchaj
żółwie
  Dane żółwie stają się aktywne. Parametrem muszą być nazwy żółwi funkcjonujących na aktywnej stronie (niektóre bezpośrednio na stronie, inne na planszach osadzonych na tej stronie).
Po uruchomieniu Imagine jedynym istniejącym i aktywnym żółwiem jest ż1.
P
kto   Wynikiem jest lista nazw wszystkich żółwi aktywnych w uruchomionym procesie. Jeśli jest tylko jeden aktywny żółw w procesie, wynikiem kto jest jego nazwa zamiast jednoelementowej listy. F
wszystkie   Wynikiem jest lista wszystkich żyjących żółwi na stronie lub planszy. Jeśli adresatem funkcji jest okno główne (domyślny adresat), to wynikiem jest lista żółwi żyjących na aktywnej stronie.
Jeśli strona zawiera kilka plansz z ich własnymi żółwiami, to nie znajdą się one na liście wszystkie tej strony. Podobnie, jeśli plansza p zawiera inne plansze z żółwiami, to nie znajdą się one na liście wszystkie planszy p.

? pokaż wszystkie
[ż1]
? pokaż s1'wszystkie
[ż1]
? pokaż p1'wszystkie
[ż2 ż3]
? pokaż p2'wszystkie
[ż4 ż5]
F
wszystkieZ
klasa
  Wynikiem jest lista nazw wszystkich żółwi, które są potomkami danej klasy. F
Valid XHTML 1.0 StrictPoprawny CSS!
Copyright (c) 2009-2017. Szkoła Podstawowa nr 3 im. Mikołaja Kopernika. All rights reserved.