CBot
Z Wikipedii
Cbot jest językiem programowania stworzonym specjalnie dla gry Colobot. Jest podobny do języka C.
Spis treści |
[edytuj] Zastosowanie
- CBot został przeznaczony do programowania robotów w grze Colobot.
- CBot ułatwia naukę języków C++, C oraz Java (a także JavaScript, PHP i wiele innych)
[edytuj] Podstawy CBota
[edytuj] Proste instrukcje
Po wyświetlenieniu edytora programu dostępnego przy każdym robocie w grze Colobot, wyświetla się następujący tekst:
extern void object::Nowy() { }
W klamrach {}, umieszczane są instrukcje, czyli polecenia, co robot ma robić. Reszta słów:
- extern - Oznacza (wyróżnia) główną funkcję, czyli tą która ma być uruchomiona przy włączeniu programu. Mogą występwać inne funkcje po klamrze "}" funkcjii extern, ale już bez tego słówa (tylko void object lub object).
- void - Oznacza że funkcja nie zwraca żadnego wyniku, dlatego nawiasy są puste.
- object - Typ objektu (czyli nie ciągu znaków, lub cyfr, lub wartośći logicznej)
- nowy - Nazwa funkcjii, w wypadku tej funkcjii (głównej), nazwa programu jaka będzie się pojawiać.
Instrukcja, to jakieś polecenie. Po każdej instrukcji musi wystąpić średnik. W colobocie występują podstawowe instrukcje:
- move(); - W nawiasach umieszczamy wartość dodatnią, lub ujemną. Wartość dodatnia przesuwa robota o tyle metrów, ile podało się w nawiasach, natomiast wartość ujemna cofa robota do tyłu o tyle metrów, ile podało się w nawiasach.
- turn(); - W nawiasach umieszczamy wartość dodatnią, lub ujemną. Wartość dodatnia spowoduje obrót robota o tyle stopni w lewo, ile się podało w nawiasach, natomiast wartość ujemna spowoduje obrót robota o tyle stopni w prawo, ile się podało w nawiasach.
- wait(); - Powoduje że robot czeka, przez tyle sekund, ile się podało w nawiasach.
- grab(); - Powoduje podniesienie przez robota jakiegoś przedmiotu (np. kostki tytanu). W nawiasach możemy (nie musimy) podać stałą, informującą skąd robot ma podnieść przedmiot.
- drop(); - Powoduje pozostawienie przez robota jakiegoś przedmiotu (np. kostki tytanu). W nawiasach możemy (nie musimy) podać stałą, informującą gdzie robot ma pozostawić przedmiot.
- message(); - Powoduje wyświetlenie komunikatu. W nawiasach możemy podać ciąg znaków. Ciąg znaków należy umieśćić w cudzysłowach - np. message("jakis tam tekst");
W przypadku instrukcjii grab i drop dostępne są trzy stałe:
- InFront - powoduje podniesienie/opuszczenie przedmiotu z przodu.
- Behind - powoduje podniesienie/opuszczenie przedmiotu z tyłu.
- EnergyCell - powoduje podniesienie/opuszczenie przedmiotu w miejscu, gdzie robot ma umieszczone własne ogniwo elektryczne.
Uwaga: Nie należy pisać stałych i zmiennych małymi literami. Litery muszą być takie same (np. nie wolno pisać infront, lub INFRONT, albo Infront, lecz należy pisać InFront)
W nawiasach podajemy tak zwane argumenty. Może wystąpić więcej niż jeden argument.
Przykładowy program:
extern void object::Przyklad() { move(5); turn(90); move(-5); turn(-180); wait(10); move(10); }
Powyższy (bardzo, bardzo prosty) program powoduje że robot posuwa się 5 metrów w przód, następnie obraca się w lewo (o 90 stopni) cofa się o 5 metrów, obraca się w prawo (bo liczba ujemna) o 180 stopni, czeka 10 sekund, a następnie posuwa się 10 metrów w przód.
[edytuj] Zmienne
Ważnym elementem każdego języka programowania, w tym również tego, są zmienne. Bez zmiennych, programowanie byłoby bez sensu. Zmienna jest jak pudełko w której przechowywujemy pewne dane. Zawartośćią zmiennej może być np. odległość od robota do kostki tytanu, jakiś tekst itd.
Zmienne mają typy, czyli to co je określa
- int - ten typ określa zmienną jako liczbę całkowitą (np. 5, 4 , 128)
- float - ten typ określa zmienną jako liczbę zmiennoprzecinkową (np. 5.34524525 lub 546.345)
- object - ten typ określa zmienną jako informację o obiekcie 9np. o mrówce lub kostce tyanu)
- point - ten typ określa zmienną jako punkt, czyli miejsce (wspórzędne) (np. x=35 y=-55.55 z=-2)
- string - ten typ określa zmienną jako ciąg znaków (np. Witaj świecie! ,czy blebleble)
- boolean - ten typ określa zmienną jako wartość logiczną (TRUE lub FALSE [prawda lub fałsz] )