colobot-data/help/P/tmove2.txt

67 lines
2.9 KiB
Plaintext
Raw Permalink Normal View History

\b;Ćwiczenie
To ćwiczenie jest bardzo podobne do poprzedniego. Robot musi się poruszać dokładnie w ten sam sposób, ale podczas pisania programu musisz użyć nowego, niezwykle ważnego w programowaniu rozwiązania, a mianowicie \l;zmiennych\u cbot\var;.
Jak wiadomo, odległości pomiędzy platformami wynoszą 20 metrów, a wszystkie wykonywane obroty mają po 90 stopni. Zamiast w programie wciąż przepisywać te same wartości, można przechować je w zmiennych:
Zamiast:
\c;\s; move(20);
\s; turn(90);
\s; move(20);
\s; turn(-90);
\s; ...
\n;
Napiszemy:
\c;\s; dist = 20;
\s; dir = 90;
\s; move(dist);
\s; turn(dir);
\s; move(dist);
\s; turn(-dir);
\s; ...
\n;
\b;Zmienne
\l;Zmienna\u cbot\var; składa się z trzech elementów:
1) Nazwy
2) Typu zawartości
3) Zawartości
\t;Nazwa
Nazwa służy do odwoływania się do zmiennej. Zamiast pisać \c;move(20);\n;, wystarczy napisać \c;move(dist);\n;, gdzie "dist" jest nazwą zmiennej. Zmiennej można nadać prawie dowolną nazwę, na przykład \c;dist\n;, \c;dir\n;, \c;p2\n;, \c;a\n;, \c;x\n;, \c;nothing_2_grab\n;, itd.
\t;Typ
Typ zmiennej określa jaki rodzaj informacji jest przechowywany przez zmienną. Zależnie od typu, zmienna może zawierać liczby całkowite, liczby rzeczywiste, ciągi znakowe, współrzędne punktu, itd. Oto lista najbardziej popularnych typów zmiennych:
o \c;\l;int\u cbot\int;\n; dla liczb całkowitych (12, -500, itd.)
o \c;\l;float\u cbot\float;\n; dla liczb rzeczywistych (3.14, 0.2, -99.98, itd.)
o \c;\l;string\u cbot\string;\n; dla łańcuchów znakowych ("Cześć!", "Nie ma nic do podniesienia", itd.)
o \c;\l;point\u cbot\point;\n; dla współrzędnych przestrzeni x, y, z
o \c;\l;object\u cbot\object;\n; dla informacji o obiekcie (robocie, budynku, itd.)
\t;Zawartość
Zawartością zmiennej może być liczba, łańcuch, współrzędne, itd., zależnie od typu zmiennej. Zawartość zmiennej może być wielokrotnie modyfikowana w trakcie wykonywania programu.
Przed użyciem zmiennej konieczne jest jej zadeklarowanie. Na przykład przed użyciem dwóch zmiennych \c;dist\n; i \c;dir\n;, należy je zadeklarować w następujący sposób:
\c;
\s; float dist;
\s; float dir;
\n;
Teraz już można ich używać. Aby przypisać zmiennej \c;dist\n; wartość 20 a zmiennej \c;dir\n; wartość 90, napisz:
\c;
\s; dist = 20;
\s; dir = 90;
\n;
Teraz można poruszać i obracać robota instrukcjami \c;\l;move\u cbot\move;\n; i \c;\l;turn\n;\u cbot\turn;:
\c;
\s; move(dist);
\s; turn(dir);
\n;
Można również użyć całego \l;wyrażenia matematycznego\u cbot\expr; zamiast samej zmiennej:
\c;
\s; move(dist+100);
\s; turn(-dir);
\n;
Druga z instrukcji będzie potrzebna do obrócenia robota w prawo.
A teraz przepisz program z poprzedniego ćwiczenia, używając jednak zmiennych dla odległości i kąta obrotu.
\t;Zobacz również
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.