\b;Programowanie - język CBOT
Język CBOT jest zbliżony strukturą i składnią do takich języków programowania jak C++ i Java. Został on przystosowany do specyficznych zadań gry COLOBOT, przy uwzględnieniu aspektu pedagogicznego.
Składa się on z instrukcji (zobacz poniżej), \l;bloków\u cbot\bloc;, \l;funkcji\u cbot\function;, \l;klas\u cbot\class;, \l;zmiennych\u cbot\var;, \l;tablic\u cbot\array;, \l;wyrażeń\u cbot\expr; i \l;warunków\u cbot\cond;.

o  \c;\token;Instrukcje\norm;\n;
W edytorze programu, instrukcje języka CBOT są zawsze wyświetlane na pomarańczowym tle. Jeśli jest inaczej, oznacza to literówkę w nazwie instrukcji. Nazwy instrukcji są zawsze pisane małymi literami. 

o  \c;\type;Typy\norm;\n;
\l;Typ\u cbot\type; zmiennej wyświetlany jest na zielonym tle. 

o  \c;\const;Stałe\norm;\n;
Stałe, podobnie jak \l;kategorie\u cbot\category;, wyświetlane są na czerwonym tle. 

\t;Instrukcje w języku CBOT:
\c;\l;extern\u cbot\extern;     \n;Oznacza główną funkcję
\c;\l;if\u cbot\if;         \n;Struktura wyboru
\c;\l;else\u cbot\if;       \n;Struktura wyboru alternatywy
\c;\l;for\u cbot\for;        \n;Struktura pętli
\c;\l;while\u cbot\while;      \n;Struktura kontroli
\c;\l;do\u cbot\do;         \n;Struktura kontroli
\c;\l;break\u cbot\break;      \n;Wychodzi z pętli
\c;\l;continue\u cbot\continue;   \n;Kontynuuje pętlę
\c;\l;return\u cbot\return;     \n;Wychodzi z funkcji
\c;\l;sizeof\u cbot\sizeof;     \n;Rozmiar tablicy

\t;Instrukcje specyficzne dla robotów:
\c;\l;radar\u cbot\radar;      \n;Wykrywa obiekty
\c;\l;direction\u cbot\direct;  \n;Oblicza kąt obrotu
\c;\l;distance\u cbot\dist;   \n;Oblicza odległość
\c;\l;distance2d\u cbot\dist2d; \n;Oblicza odległość
\c;\l;wait\u cbot\wait;       \n;Czeka
\c;\l;move\u cbot\move;       \n;Przesuwa naprzód lub wstecz
\c;\l;turn\u cbot\turn;       \n;Obraca
\c;\l;goto\u cbot\goto;       \n;Przemieszcza się do zadanej pozycji
\c;\l;motor\u cbot\motor;      \n;Bezpośrednia kontrola nad silnikiem
\c;\l;jet\u cbot\jet;        \n;Bezpośrednia kontrola nad odrzutem
\c;\l;message\u cbot\message;    \n;Wyświetla komunikat
\c;\l;retobject\u cbot\retobj;  \n;Zwraca obiekt z funkcji
\c;\l;errmode\u cbot\errmode;    \n;Sposób traktowania błędów
\c;\l;abstime\u cbot\abstime;    \n;Zwraca czas absolutny

\t;Instrukcje związane z topologią terenu:
\c;\l;space\u cbot\space;      \n;Znajduje wolne miejsce
\c;\l;topo\u cbot\topo;       \n;Zwraca wysokość punktu
\c;\l;flatground\u cbot\flatgrnd; \n;Zwraca promień płaskiego obszaru

\t;Instrukcje specyficzne dla niektórych robotów:
\c;\l;grab\u cbot\grab;       \n;Podnosi przedmiot
\c;\l;drop\u cbot\drop;       \n;Upuszcza przedmiot
\c;\l;sniff\u cbot\sniff;      \n;Nasłuchuje podglebie
\c;\l;thump\u cbot\thump;      \n;Przewraca obce organizmy
\c;\l;recycle\u cbot\recycle;    \n;Odzyskuje tytan z pozostałości robota
\c;\l;shield\u cbot\shield;     \n;Rozszerza lub wyłącza osłonę
\c;\l;fire\u cbot\fire;       \n;Strzela z działa
\c;\l;aim\u cbot\aim;        \n;Ustawia kąt lufy w pionie

\t;Instrukcje specyficzne dla stacji przekaźnikowych:
\c;\l;receive\u cbot\receive;    \n;Odbiera informację
\c;\l;send\u cbot\send;       \n;Wysyła nową informację
\c;\l;testinfo\u cbot\testinfo;   \n;Sprawdza czy istnieje informacja
\c;\l;deleteinfo\u cbot\delinfo; \n;Usuwa istniejącą informację

\t;Instrukcje specyficzne dla klas:
\c;\l;class\u cbot\class;      \n;Deklaracja klasy
\c;\l;public\u cbot\public;     \n;Deklaracja funkcji publicznej
\c;\l;private\u cbot\private;    \n;Deklaracja prywatnego elementu klasy
\c;\l;static\u cbot\static;     \n;Deklaracja statycznego elementu klasy
\c;\l;synchronized\u cbot\synchro; \n;Zapobiega jednoczesnemu wykonywaniu
\c;\l;new\u cbot\new;        \n;Tworzy nową instancję
\c;\l;this\u cbot\this;       \n;Odwołanie do bieżącej instancji

\t;Instrukcje specyficzne dla łańcuchów:
\c;\l;strlen\u cbot\strlen;     \n;Podaje długość łańcucha
\c;\l;strleft\u cbot\strleft;    \n;Wyodrębnia lewą część
\c;\l;strright\u cbot\strright;   \n;Wyodrębnia prawą część
\c;\l;strmid\u cbot\strmid;     \n;Wyodrębnia środkową część
\c;\l;strfind\u cbot\strfind;    \n;Znajduje podłańcuch.
\c;\l;strval\u cbot\strval;     \n;Zamienia łańcuch na liczbę
\c;\l;strupper\u cbot\strupper;   \n;Zamienia litery na wielkie
\c;\l;strlower\u cbot\strlower;   \n;Zamienia litery na małe

\t;Instrukcje specyficzne dla plików:
\c;\l;open\u cbot\open;       \n;Otwiera plik
\c;\l;close\u cbot\close;      \n;Zamyka plik
\c;\l;writeln\u cbot\writeln;    \n;Zapisuje wiersz do pliku
\c;\l;readln\u cbot\readln;     \n;Wczytuje wiersz z pliku
\c;\l;eof\u cbot\eof;        \n;Sprawdza czy jest już koniec pliku
\c;\l;deletefile\u cbot\deletef; \n;Usuwa plik

\t;Zobacz również
\l;Typy\u cbot\type; i \l;kategorie\u cbot\category;.
