CBOT
CBOT – język programowania stworzony dla gry Colobot, wykorzystany również w jej następcy, Ceebot, i w Buzzing Cars (Wild Wheels).
Programuje się w nim roboty w grze do wykonywania przez nie zadań stworzonych przez twórców gry.
Obce formy życia spotykane w grze również są zaprogramowane za pomocą języka CBOT, jednak modyfikacja bądź tworzenie dla nich programów jest możliwe jedynie po zastosowaniu kodów do gry, bądź ingerencji w pliki gry.
Język CBOT jest zbliżony strukturalnie i składniowo do języków C++ oraz Java. Jest to celowy zabieg, ponieważ celem gier Colobot i Ceebot jest ułatwienie późniejszej nauki tych języków.
Edytor programu[edytuj]
Każdy robot w grze posiada wbudowany edytor programu, który pozwala na zaprogramowanie go.
Edytor 3 kolorami wyróżnia różne typy składni programu:
- pomarańczowy → tym kolorem oznaczane są instrukcje dla robotów (idź, podnieś, strzelaj, itp.)
- zielony → tym kolorem oznacza się polecenia określające typ zmiennych
- czerwony → tym kolorem określa się wartości stałe w grze, do których odwołują się zadania robotów (m.in. są to budynki lub inne roboty)
Edytor pozwala na zapisywanie i odczytywanie stworzonych przez gracza programów w trakcie gry, dzięki czemu raz napisany program można wykorzystać wielokrotnie. Wszystkie programy zapisywane są w plikach tekstowych.
Edytor posiada opcje nazwaną "kompilacją", jednak nie powoduje ona faktycznej kompilacji a jedynie pozwala na sprawdzenie, czy w kodzie programu nie ma błędów.
Struktura języka[edytuj]
Język CBOT rozróżnia małe i wielkie litery, dlatego aby programy mogły działać ich zachowanie jest niezbędne (np. ruda tytanu oznaczona jest stałą TitaniumOre, wpisanie Titaniumore nie zostanie rozpoznane jako ruda tytanu).
Po uruchomieniu edytora programu, część kodu jest już wpisana. Ta część kodu jest niezbędna do działania programów napisanych dla robotów i wewnątrz niej należy wpisywać wszystkie polecenia:
extern void object::Nowy() { miejsce na wpisanie kodu programu }
- extern – wyróżnia funkcję, która jest głównym programem; wewnątrz głównej funkcji w kodzie programu mogą występować inne funkcje, jednak nie mogą być one oznaczone jako extern
- void – oznacza, że funkcja nie zwraca żadnego wyniku
- object – typ określający zmienną jako informację o obiekcie
- Nowy – nazwa funkcji, w wypadku funkcji głównej nazwa funkcji będzie jednocześnie nazwą programu
Instrukcje[edytuj]
Instrukcje są poleceniami dla robotów jakie mają wykonać. Wszystkie zadania jakie może wykonać robot opisywane są przez instrukcje. Po każdej instrukcji należy w nawiasie wpisać wartość stałą lub zmienną odnoszącą się do tej instrukcji. Każda instrukcja musi być zakończona średnikiem.
Przykładowe instrukcje:
- move(); – przesuwa robota w przód o liczbę metrów podaną w nawiasie (jeżeli podana jest liczba ujemna robot przesuwa się w tył)
- turn(); – obraca robota w lewo o liczbę stopni podaną w nawiasie (jeżeli podana jest liczba ujemna robot obraca się w prawo)
- grab(); – powoduje podniesienie przedmiotu przez robota, jeżeli wartość pozostanie pusta robot podniesie przedmiot leżący przed nim
- drop(); – powoduje upuszczenie przedmiotu przez robota, jeżeli wartość pozostanie pusta robot upuści przedmiot przed nim
Zmienne[edytuj]
Zmienne w języku CBOT podzielone są na typy. Typ zmiennej zależny jest od informacji jaką ta zmienna zawiera:
- int – typ określający zmienną jako liczbę całkowitą
- float – typ określający zmienną jako liczbę zmiennoprzecinkową (np. 1.2345)
- object – typ określający zmienną jako informację o obiekcie (np. o rudzie tytanu)
- point – typ określający zmienną jako punkt na mapie (np. x=12 y=34 z=56)
- string – typ określający zmienną jako ciąg znaków (np. Hello world)
- boolean – typ określający zmienną jako wartość logiczną (true / false)
Stałe[edytuj]
Stałe określają wszystkie elementy świata gry, do których odwołują się zadania robotów. Stałymi w grze są:
- flagi
- roboty
- budynki
- obce formy życia
- obiekty przenośne
Zobacz też[edytuj]
This article "CBOT" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:CBOT.
This page exists already on Wikipedia. |