34 lines
2.4 KiB
Plaintext
34 lines
2.4 KiB
Plaintext
\b;Zadanie
|
|
Przystosuj program \c;Spider2\n; do lotu na zadanej wysokości, w celu obrony przed atakującymi z każdej strony mrówkami.
|
|
|
|
\t;Program
|
|
Program niezbędny do wykonania tego zadania jest podobny do programu \c;Spider2\n;, który szuka najbliższego pająka, obraca się w jego kierunku i strzela:
|
|
\c;
|
|
\s;extern void object::Spider2()
|
|
\s;{
|
|
\s; object item;
|
|
\s;
|
|
\s; while (true)
|
|
\s; {
|
|
\s; item = radar(AlienSpider);
|
|
\s; turn(direction(item.position));
|
|
\s; fire(1);
|
|
\s; }
|
|
\s;}
|
|
\n;
|
|
Możesz go skopiować i wkleić do edytora oraz przystosować do nowego zadania. Zamień \c;radar(AlienSpider);\n; na \c;radar(AlienAnt);\n;, i napisz przed pętlą \c;while\n; inną pętlę uruchamiającą napęd odrzutowy \l;działa latającego\u object\botfj; do chwili osiągnięcia przez robota wysokości 20 metrów.
|
|
|
|
Instrukcja \c;\l;jet\u cbot\jet;()\n; kontroluje napęd odrzutowy robota latającego. Liczba w nawiasach musi się zawierać w przedziale od \c;-1\n; do \c;1\n;.\c; jet(1);\n; unosi robota do góry z maksymalną prędkością. \c; jet(-1);\n; opuszcza robota w dół z maksymalną prędkością, a \c;jet(0);\n; powoduje, że robot utrzymuje uzyskaną wysokość. Ponieważ robot musi osiągnąć dokładną wysokość, wzlatuj nim powoli używając instrukcji \c;jet(0.2);\n;, poczekaj aż osiągnie pożądaną wysokość i ustabilizuj wysokość instrukcją \c;jet(0);\n;.
|
|
|
|
Aby "czekać aż do osiągnięcia żądanej wysokości", konieczne jest użycie pętli warunkowej: instrukcje wewnątrz niej będą powtarzane tak długo, jak podany warunek jest prawdziwy. Wysokość robota jest podawana przez \c;position.z\n;. Jak już widzieliśmy, instrukcja \c;position\n; podaje pozycję robota. Jest ona określona przez trzy współrzędne x, y oraz z: oś x jest osią zachód-wschód, oś y jest osią południe-północ, a oś z jest osią pionową. Wobec tego należy poczekać tak długo jak \c;position.z\n; będzie mniejsze niż 20:
|
|
\c;
|
|
\s; while (position.z < 20)
|
|
\s; {
|
|
\s; wait(0.2);
|
|
\s; }
|
|
\n;
|
|
Po odczekaniu 0,2 sekundy, program sprawdzi czy wysokość jest wciąż mniejsza od 20 metrów. Jeśli tak, poczeka jeszcze chwilę, a jeśli nie, program będzie kontynuowany po pętli, tzn. po klamrze zamykającej \c;}\n;. Nie zapomnij po pętli ustabilizować wysokości instrukcją \c;jet(0);\n;.
|
|
|
|
\t;Zobacz również
|
|
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
|