colobot-data/help/P/tsniff.txt

44 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

\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;.