36 lines
1.9 KiB
Plaintext
36 lines
1.9 KiB
Plaintext
\b;Ćwiczenie
|
|
To ćwiczenie jest bardzo podobne do poprzedniego. Tym razem mamy trzy \l;kostki tytanu\u object\titan;, które należy przenieść na 3 platformy końcowe. Oto współrzędne platform końcowych:
|
|
\c;
|
|
x=10, y=-60
|
|
x=10, y=-65
|
|
x=10, y=-70
|
|
\n;
|
|
\b;Ogólny algorytm
|
|
Powtórz 3 razy:
|
|
o Znajdź najdalszą kostkę tytanu za pomocą instrukcji \c;\l;radar\u cbot\radar;\n;.
|
|
o Podnieś ją instrukcją \c;\l;grab\u cbot\grab;\n;.
|
|
o Podjedź do jednej z platform: \c;\l;goto\u cbot\goto;\n;.
|
|
o Zostaw tytan: \c;\l;drop\u cbot\drop;\n;.
|
|
|
|
W przypadku szukania najbliższej kostki tytanu, radar znajdzie tytan dopiero co zaniesiony na platformę. Należy więc szukać najdalszej kostki tytanu.
|
|
|
|
\b;Program
|
|
Użyj pętli \c;\l;for\u cbot\for;\n; do trzykrotnego powtórzenia wszystkich instrukcji niezbędnych do przeniesienia kostki tytanu. Wewnątrz pętli, aby znaleźć najdalszą kostkę tytanu, użyj instrukcji \c;\l;radar\u cbot\radar;(Titanium, 0, 360, 0, 1000, -1);\n;. Ostatnia wartość \c;-1\n; oznacza, że zamiast szukać najbliższego przedmiotu, radar podaje w wyniku najdalszy przedmiot, który może znaleźć.
|
|
\c;
|
|
\s;object metal;
|
|
\s;metal = radar(Titanium, 0, 360, 0, 1000, -1);
|
|
\s;if ( metal == null ) return;
|
|
\s;goto(metal.position);
|
|
\n;
|
|
Zmienna \c;metal\n; jest typu \c;\l;object\u cbot\object;\n;. Aby poznać pozycję obiektu opisanego przez zmienną, musisz napisać \c;metal.position\n;.
|
|
|
|
Współrzędna \c;x\n; wszystkich trzech platform jest taka sama i równa 10. Współrzędne \c;y\n; odpowiednio wynoszą -60, -65 i -70. Najefektywniejszym sposobem otrzymania współrzędnych platform jest użycie wartości \c;i\n; z pętli \c;for\n;, która przyjmuje kolejno wartości 0, 1 i 2:
|
|
\c;
|
|
\s;dest.x = 10;
|
|
\s;dest.y = -60-5*i;
|
|
\n;
|
|
Do Ciebie należy dokończenie programu...
|
|
|
|
\t;Zobacz również
|
|
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
|