44 lines
2.0 KiB
Plaintext
44 lines
2.0 KiB
Plaintext
![]() |
\b;Ćwiczenie
|
||
|
Przeszukaj \l;robotem szperaczem\u object\botsr; całą strefę otoczoną barierami, aby znaleźć odpowiednie miejsce na kopalnię. Gdy robot przebada podglebie i odkryje odpowiednie miejsce na kopalnię, oznaczy je czerwonym plusem.
|
||
|
|
||
|
\b;Opis
|
||
|
Strefa otoczona barierami jest kwadratem o boku 25 metrów. Najskuteczniejszym sposobem działania jest sprawdzanie podglebia co 5 metrów.
|
||
|
|
||
|
\image sniff1 12 12;
|
||
|
Jedynym sposobem osiągnięcia tego jest zagnieżdżenie wewnątrz siebie dwóch pętli \c;\l;for\u cbot\for;\n;:
|
||
|
\c;
|
||
|
\s;for ( int y=0 ; y<6 ; y=y+1 )
|
||
|
\s;{
|
||
|
\s; for ( int x=0 ; x<5 ; x=x+1 )
|
||
|
\s; {
|
||
|
\s; \n;bada podglebie\c;
|
||
|
\s; \n;jedzie 5m naprzód\c;
|
||
|
\s; }
|
||
|
\s; \n;bada podglebie\c;
|
||
|
\s; \n;ćwierć obrotu w lewo\c;
|
||
|
\s; \n;jedzie 5m naprzód\c;
|
||
|
\s; \n;ćwierć obrotu w lewo\c;
|
||
|
\s;}
|
||
|
\n;
|
||
|
Program działa dobrze tylko na początku. Po pierwszym wierszu robot obraca się prawidłowo w lewo i bada drugą linię. Ale po drugiej linii powinien skręcić w prawo!
|
||
|
Należy zauważyć, że jeśli \c;y\n; jest parzyste, robot powinien skręcić w lewo, a jeśli \c;y\n; jest nieparzyste, powinien skręcić w prawo.
|
||
|
\l;Wyrażenie\u cbot\expr; \c;y%2\n; podaje resztę z dzielenia \c;y\n; przez \c;2\n;. Na przykład jeśli \c;y=3\n;, wyrażenie zwróci wartość \c;1\n;.
|
||
|
Po teście \c;\l;if\u cbot\if; { }\n; może pojawić się instrukcja \c;else { }\n;. Jeśli warunek jest prawdziwy, wykonywany jest pierwszy \l;blok\u cbot\bloc; \c;{ }\n;. W przeciwnym przypadku zostanie wykonany drugi blok \c;{ }\n;.
|
||
|
\c;
|
||
|
\s;if ( y%2 == 0 )
|
||
|
\s;{
|
||
|
\s; y \n;jest parzyste\c;
|
||
|
\s;}
|
||
|
\s;else
|
||
|
\s;{
|
||
|
\s; y \n;jest nieparzyste\c;
|
||
|
\s;}
|
||
|
\n;
|
||
|
Do Ciebie należy dokończenie programu.
|
||
|
|
||
|
\b;Uwaga
|
||
|
Użyj instrukcji \c;\l;sniff\u cbot\sniff;( )\n; do badania podglebia oraz instrukcji \c;\l;move\u cbot\move;( )\n; i \c;\l;turn\u cbot\turn;( )\n; przemieszczania robota.
|
||
|
|
||
|
\t;Zobacz również
|
||
|
\l;Programowanie\u cbot;, \l;typy\u cbot\type; i \l;kategorie\u cbot\category;.
|