Colobot Wiki
Advertisement

Definicja[]

Instrukcja move - porusza robota o wskazaną liczbę jednostek do przodu lub do tyłu.

Użycie[]

Jest to podstawowa komenda służąca do poruszania się. Przydaje się, gdy trzeba się poruszyć o konkretną odległość, kiedy chcemy wyznaczyć dokładną drogę robota. Przykładowo, używa się jej w ćwiczeniach z prostym labiryntem.

Z bardziej praktycznych zastosowań: umożliwia wycofanie robota po zostawieniu rudy tytanu w hucie (najlepiej o 2.5 - 3 jednostek, dzięki czemu huta może spokojnie zacząć pracować).

Składnia:[]

int move(float distance);

Przykład:[]

move(1); // ruch o 1 jednostkę do przodu
move(-1); // ruch o 1 jednostkę do tyłu

Argumenty[]

Funkcja move przyjmuje jeden argument typu float będący długością (distance), o jaką ma się poruszyć robot. Dla liczb dodatnich wywołuje poruszanie się do przodu. Liczby ujemne sprawiają, że bot porusza się do tyłu.

Zwracana wartość[]

Funkcja move zwraca wartość typu int. Dzięki niej można sprawdzić, czy funkcja wywołała się poprawnie. Jeśli zostanie zwrócona wartość 0, to znaczy, że funkcja wywołała się poprawnie. Jeśli zwrócona wartość będzie różna od zera, to znaczy, że wystąpił błąd w trakcie wywołania funkcji.

Przykład z użyciem struktury wyboru if:[]

errmode(0); // 1
int i = move(15); // 2
if(i!=0) // 3
{

message("Nie mozna wykonac funkcji move (brak energii?).", DisplayError);
return; // 4

}

Analiza przykładu dla początkujących:[]

  1. Funkcja errmode jest potrzebna, aby wyłączyć automatyczne powiadamianie i wyłączanie programu po błędzie (NIEZALECANE DLA POCZĄTKUJĄCYCH PROGRAMISTÓW). Gdybyśmy tego nie zrobili, to w przypadku niepowodzenia program zakończyłby się i kod w bloku instrukcji if nie zostałby wykonany.
  2. Przypisujemy wynik działania funkcji move do zmiennej pomocniczej i.
  3. Sprawdzamy, czy wywołanie się powiodło (czy wynik [zapisany w zmiennej i] jest równy zero).
  4. Jeśli nie, zostają wywołane instrukcje w bloku instrukcji if.
Advertisement