LOGO – słownik minimum

Posługiwanie się LOGO przestaje powoli być problemem. Cykl publikacji w „Przeglądzie Technicznym”, „Informatyce” i „Bajtku” ułatwia poznanie podstawowych zasad posługiwania się tym językiem. Brak jeszcze kompletnego, systematycznego opisu Logo, a w szczególności jego dialektów innych niż SINCLAIR LOGO
Oto ów Słownik Minimum:
 

KORZYSTANIE Z WYKAZU

Kolorem czerwonym drukowane są hasta, dotyczące dialektu SINCLAIR LOGO dla ZX Spectrum 48 kB, wzorowanego na APPLE LOGO. Nieznacznie różniące się wersje LOGO dostępne są dla komputerów Atari 800XL oraz Amstrad CPC 464 — oraz typów z nimi zgodnych pod względem oprogramowania.

Kolorem niebieskim drukowane są hasta, odnoszące się do TERRAPIN LOGO w wersji podstawowej dla Apple II. Dialekt ten niemal pokrywa się z COMMODORE LOGO dla komputerów C 64 i C 128.

Hasta wspólne dla obu opisywanych dialektów drukowane są w kolorze czarnym.

Wszystkie przykłady przy hastach czarnych i czerwonych podane zostały przy użyciu SINCLAIR LOGO, pozostałe — TERRAPIN LOGO.

Hasłem jest najczęściej nazwa procedury, uzupełniona o typ jej parametrów oraz — jeżeli jest to operacja — o typ wyniku. Np.:

FORWARD n    FD n

 

oznacza, że FORWARD wymaga jednego parametru, bądącego liczbą; FORWARD może zostać skrócone do FD.

SENTENCE nsl nsl ← l (SE nsl...) ← I

 

oznacza, że operacja SENTENCE zazwyczaj wymaga dwóch parametrów. Każdy z nich może być słowem, listą lub liczbą; wynikiem jej jest lista. SENTENCE może być skrócone do SE oraz wystąpić wraz z dowolną ilością parametrów w nawiasach okrągłych — zatem jest procedurą zachłanną.

HEADING ← n

oznacza, że HEADING jest operacją bezparame–trową, której wynikiem jest liczba.

Używane skróty, określające typy danych:

n — liczba, np.    3

    250.0675

    6.75E14

s — słowo, np.    „HEJ”

    3456

    TRUE

I — lista, np.     []

    [Oto przykład [listy]]

    [123 0]

p — wyrażenie logiczne o wartości TRUE lub FALSE, np.

    1 = :x

    MEMBERP 1 [1 2 3 4]

    (.alfa > :beta)

 

1.1. Żółw

BACK n    BK n

Przemieszczenie żółwia do tyłu o podaną liczbę kroków, bez zmiany jego kierunku (w przypadku podania parametru ujemnego żółw porusza się do przodu).

BACK 50

FORWARD n     FD n

Przemieszczenie żółwia do przodu o podaną liczbę kroków, bez zmiany jego kierunku. W przypadku podania parametru ujemnego żółw porusza się do tyłu.

FORWARD 50

 

HIDETURTLE    HT

Sylwetka żółwia zostaje usunięta z ekranu. Wszystkie procedury graficzne są dalej wykonywane bez zmian. Efektem ubocznym jest pewne zwiększenie tempa tworzenia rysunku.

TO SZYBKO :co

HT RUN :co ST

END

SZYBKO [REPEAT 50 [FD 80 RT 141]]

HOME

Żółw zostaje przemieszczony do swego położenia początkowego, tzn. w środek ekranu i ustawiony w pozycji pionowej. Jeżeli pisak żółwia jest w opcji PENDOWN lub PENREVERSE, żółw kreśli w trakcie tego przesunięcia linię.

RT 90 FD 70 HOME

 

LEFT n     LT n

Obrót żółwia w lewo o podany w stopniach kąt, bez zmiany jego pozycji (parametr ujemny powoduje obrót w prawo).

LEFT 90

 

RIGHT n     RT n

Obrót żółwia w prawo o podany w stopniach kąt, bez zmiany jego pozycji. W przypadku podania parametru ujemnego następuje obrót w lewo.

TO ZWROT RIGHT 180

END

ZWROT

SHOWNP ←P

Funkcja, określająca widoczność żółwia na ekranie. Przyjmuje wartość TRUE, gdy żółw jest widoczny, FALSE w przeciwnym przypadku.

SHOWTURTLE

PRINT SHOWNP

TRUE

SHOWTURTLE     ST

Sylwetka żółwia ukazuje się na ekranie monitora.

HIDETURTLE

CS

SHOWTURTLE

TURTLESTATE ←I   

Funkcja, określająca aktualny stan żółwia. Jej wartością jest lista czteroelementowa; pierwsze dwa elementy określają kolejno: opuszczenie pisaka oraz widoczność żółwia (TRUE lub FALSE). Trzeci element listy jest liczbą określającą kolor pisaka, czwarty określa kolor tła ekranu.

PRINT TURTLESTATE

TRUE TRUE 0 6

 

1.2. Ekran graficzny

CLEAN

Usunięcie wszystkich rysunków z ekranu graficznego. Żółw nie zmienia swojego położenia.

FD 40

CLEAN

 

CLEARSCREEN     CS

Inicjalizacja ekranu graficznego. Wszystkie rysunki zostają usunięte, żółw ustawiony w środku ekranu i skierowany pionowo w górę. CS nie ma wpływu na stan pisaka, widoczność żółwia oraz na tryb ekranu (WRAP, WINDOW lub FENCE).

FD 40

CS

 

CLEARSCREEN    CS

Patrz CLEAN.

DRAW

Patrz CLEARSCREEN.

 

FENCE

Tryb ekranu graficznego, w którym żółw nie ma możliwości przekraczania jego granic; każda próba tego rodzaju kończy się wydrukiem komunikatu LOGO.

FENCE FORWARD 500 0

Turtle out of bounds

 

NOWRAP

Patrz FENCE.

WINDOW

Tryb ekranu, w którym żółw może swobodnie poruszać się poza jego obrzeżem (wszystkie procedury graficzne są wykonywane również poza obszarem ekranu).

CS WINDOW

FD 5000 PR POSITION

0 5000

WRAP

 

WRAP

Tryb ekranu, w którym przy próbie przekroczenia jego krawędzi żółw ukazuje się po przeciwległej stronie ekranu.

CS WRAP

LT 30

FD 5000

 

1.3. Pisak

PENDOWN    PD

Włączenie opcji „pisak opuszczony”. Żółw w trakcie przemieszczania się zostawia na ekranie ślad w postaci linii.

PENDOWN

SETPOS [50 0]

FD 40 HOME

 

PENERASE    PE

Włączenie opcji pisaka, w której pełni on rolę „gumki” — żółw podczas ruchu usuwa istniejące elementy rysunku.

PD FD 60

PENERASE

BK 4 0

 

PENREVERSE    PX

Włączenie opcji pisaka, w której podczas ruchu żółwia miejsca „zamalowane” rysunku są wymazywane, natomiast w pozostałych miejscach pojawia się linia.

PD FD 20

PENREVERSE

BK 6 0

 

PENUP    PU

Opcja pisaka, w której żółw nie pozostawia żadnego śladu na ekranie.

TO SKOK :jaki

PU RUN :jaki PD

END

FD 20 SKOK[HOME BK 2]BK 20

 

1.4. Układ współrzędnych

ASPECT n

Ustalenie stosunku długości odcinka jednostkowego poziomej osi układu współrzędnych do długości odcinka jednostkowego osi pionowej. Standardowo (dla Apple II) wielkość ta wynosi 0.8. Zob. SETH SCRUNCH

 

DOT

Pojawienie się na ekranie punktu o podanych współrzędnych. Parametrem jest lista dwuelementowa, zawierająca żądane współrzędne X i Y punktu. DOT nie ma żadnego wpływu na aktualny stan zołwia.

DOT C10 803

DOT C500 10003

DOT

out of bounds

 

HEADING ← n

Aktualna wartość kąta pomiędzy pionem ekranu a kierunkiem żółwia. Kąt ten liczony jest w stopniach zgodnie z ruchem wskazówek zegara.

HOME PR HEADING

0

LT 90

PR HEADING 270

 

POSITION ← I    POS ← I

Funkcja określająca aktualne współrzędne żółwia na ekranie. Jej wartością jest lista dwuelementowa, zawierająca te współrzędne.

HOME PR POS

0 0

BK 30 PRINT POS

0 –30

 

SCRUNCH ← I

Funkcja określająca aktualne wartości bezwzględne jednostek na poziomej i pionowej osi układu Standardowo SCRUNCH = [100 100]

PRINT SCRUNCH

100 100

 

SETHEADING n    SETH n

Ustawienie żółwia pod żądanym kątem do pionu, podanym w stopniach i liczonym zgodnie z ruchem wskazówek zegara.

SETH 0

SETH TOWARDS [20 40]

 

SETPOS I

Przesunięcie żółwia do punktu, którego współrzędne są określone przez dwa elementy listy — parametru. Kierunek żółwia nie ulega zmianie.

TO SINUSOIDA :dl

REPEAT :dl[SETPOS SE XCOR

+ 180 * SIN XCOR * 2]

END

CS SINUSOIDA 120

 

SETCRUNCH I    SETSCR I

Ustalenie wartości bezwzględnych jednostek na poziomej i pionowej osi układu współrzędnych. Parametrem jest dwuelementowa lista liczb, określających długości jednostek na osiach układu. Standardowo wartością tej listy jest [100 100].

TO PRZYKŁAD.ELIPSY

SETSCR [100 503]

REPEAT 36 [FD 10 RT 10]

END

PRZYKŁAD.ELIPSY

SETSCR [100 100]

 

SETX n n

Przesunięcie żółwia ao punktu o podanej współrzędnej poziomej X. Współrzędna Y i kierunek żółwia pozostają bez zmian.

TO SCHODY :ile

REPEAT: ile CSETY YCOR + .10

SETX XCOR + 153

END

CS SCHODY 6

 

SETXY I

Przesunięcie żółwia do punktu o podanych współrzędnych: poziomej i pionowej, bez zmiany jego kierunku. Odpowiednik SETPOS

 

SETY n

Przesunięcie żółwia do punktu o podanej współrzędnej pionowej Y. Współrzędna X i kierunek żółwia pozostają bez zmian.

TO HISTOGRAM: wartości

IF EMPTYP:wartosci [STOP]

SETY FIRST :wartosci SETX XCOR + 10

HISTOGRAM BUTFIRST

:wartości

END

CS HISTOGRAM [10 20 60 35 73 12 0]

 

TOWARDS “I” ← n

Funkcja, określająca kierunek żółwia w stopniach do podanego punktu płaszczyzny. Parametrem jest dwuelementowa lista liczb, wartością funkcji liczba z przedziału 0…360.

CS

PRINT TOWARDS [10 10]

45

TOWARDS n n ← n

Funkcja, określająca kierunek żółwia (liczony w stopniach od pionu ekranu) do punktu o podanych jako parametry współrzędnych. Odpowiednik TOWARDS

 

XCOR ← n

Aktualna wartość współrzędnej poziomej żółwia.

HOME RT 9 0 FD 40

PRINT XCOR

40

 

YCOR ← n

Aktualna wartość współrzędnej pionowej żółwia.

TO PIONOWO :odl

SETY YCOR + :odl

END

SETH 45 FD 40

PIONOWO 10

 

1.5. Kolor

BACKGROUND ←n    GB  ←n

Aktualna wartość liczby, określającej kolor tła ekranu. Dla ZX Spectrum wartość ta mieści się w przedziale 0…7.

TO DOPEŁNIJ

SETBORDER BACKGROUND

END

SETBG 6 DOPEŁNIJ

 

BACKGROUND

Ustalenie koloru tła ekranu zgodnie z podanym parametrem. Dla Apple II musi on być liczbą całkowitą z zakresu 1…6. Odpowiednik

 

PENCOLOR n

Ustalenie koloru pisaka zgodnie z podanym parametrem. Odpowiednik

 

SETPC n

Aktualna wartość liczby, określającej kolor pisaka.

SETPC 5

PRINT PC

5

 

SETBG n

Ustalenie koloru tła ekranu zgodnie z podanym parametrem — dla Spectrum liczbą z przedziału 0…7.

TO FLESZ :dlugosc

MAKE „x BACKGROUND

REPEAT :dlugosc [SETBG RANDOM 8]

SETBG :x

END

FLESZ 10

 

SETBORDER n    SETBR n

Ustalenie koloru marginesu zgodnie z wartością parametru.

TO NEGATYW

MAKE „x BACKGROUND

SETBG PC SETBR PC

SETPC :x

END

NEGATYW

 

SETPC n

Ustalenie koloru pisaka zgodnie z wartością parametru.

HOME

REPEAT  10

[SETPC RANDOM]

 

Marcin Waligórski