41 lines
2.1 KiB
Plaintext
41 lines
2.1 KiB
Plaintext
\b;Zadanie
|
|
Aby zapobiec marnowaniu energii przystosuj program \c;Tower1\n; tak, aby nie strzelał do mrówek będących poza zasięgiem.
|
|
|
|
\t;Program
|
|
Program \c;Tower1\n; strzela w kierunku najbliższej mrówki, nawet jeśli wciąż jest ona poza zasięgiem:
|
|
\c;
|
|
\s;extern void object::Tower1()
|
|
\s;{
|
|
\s; object item;
|
|
\s;
|
|
\s; jet(0.2);
|
|
\s; while(position.z < 20)
|
|
\s; {
|
|
\s; wait(0.2);
|
|
\s; }
|
|
\s; jet(0);
|
|
\s;
|
|
\s; while(true)
|
|
\s; {
|
|
\s; item = radar(AlienAnt);
|
|
\s; turn(direction(item.position));
|
|
\s; fire(1);
|
|
\s; }
|
|
\s;}
|
|
\n;
|
|
Jeśli robot musi wykonać to samo zadanie co poprzednio z dostępnym jedynie \l;zwykłym ogniwem elektrycznym\u object\power;, wstaw pętlę oczekującą na wystarczające zbliżenie się mrówki (czyli mniej niż 40 metrów). Wtedy dla każdej mrówki wystarczy jedna seria strzałów.
|
|
|
|
Instrukcji \c;\l;radar\u cbot\radar();\n; można podać więcej parametrów (liczb) oznaczających gdzie radar powinien szukać mrówek. Na przykład \c;radar(AlienAnt,0,360,0,40);\n; będzie szukał tylko mrówek będących bliżej niż 40 metrów. Dwie pierwsze liczby określają, że radar powinien szukać we wszystkich kierunkach, dwie ostatnie określają, że radar powinien wykrywać tylko mrówki w odległości od 0 do 40 metrów. Jeśli nie zostanie znaleziona mrówka będąca bliżej niż 40 metrów, instrukcja \c;\l;radar\u cbot\radar();\n; zwróci wartość \c;null\n;. Wobec czego można więc napisać pętlę warunkową podobną do napisanej w poprzednim ćwiczeniu, która czeka na pojawienie się mrówki bliżej niż 40 metrów:
|
|
\c;
|
|
\s; while (radar(AlienAnt, 0, 360, 0, 40) == null)
|
|
\s; {
|
|
\s; wait(0.2);
|
|
\s; }
|
|
\n;
|
|
Zauważ, że podwójny znak równości "==" jest konieczny do wykonania sprawdzenia równości stron.
|
|
|
|
Aby robot czekał ze strzałem, aż mrówka będzie bliżej niż 40 metrów, wystarczy wstawić te dwie linie przed instrukcją \c;fire(0);\n;,. Wtedy nawet zwykłe ogniwo elektryczne wystarczy do zabicia wszystkich mrówek.
|
|
|
|
\t;Zobacz również
|
|
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
|