FANDOM


DefinicjaEdytuj

Funkcja turn - obraca robota o wskazaną liczbę stopni w lewo lub w prawo.

UżycieEdytuj

Jest to druga (zaraz po move) podstawowa komenda służąca do poruszania się. Przydaje się, gdy trzeba się obrócić w konkretnym kierunku, kiedy chcemy wyznaczyć dokładną drogę robota. Przykładowo, używa się jej w ćwiczeniach z prostym labiryntem.

Z bardziej praktycznych zastosowań: pozwala obrócić się dokładnie w kierunku obiektu znalezionego przy pomocy funkcji radar. Pomocna jest w tym przypadku funkcja direction.

Przykład:Edytuj

object item = radar(WayPoint); // 1
turn(direction(item.position)); // 2
Analiza dla początkujących:Edytuj
  1. Następuje inicjalizacja zmiennej item typu object rezultatem funkcji radar szukającej obiektu WayPoint. Załóżmy, że item na pewno zawiera wartość inną niż null po tej operacji.
  2. Wywołujemy funkcję turn, a jako argument podajemy funkcję direction, która zwraca kąt obrotu, o jaki ma się obrócić robot, aby być zwróconym w kierunku pozycji obiektu (item.position).

Na początku możesz zapominać o nawiasach, ale nie jest to kod trudny do zrozumienia.

Składnia:Edytuj

int turn(float angle);

Przykład:Edytuj

turn(90); // obrót o 90 stopni w lewo
turn(180); // obrót o 180 stopni w lewo (do tyłu)
turn(-90); // obrót o 90 stopni w prawo
turn(-360); // obrót wokół pełnej osi
turn(23.4); // obrót o 23.4 stopni w lewo

ArgumentyEdytuj

Funkcja turn przyjmuje jeden argument typu float będący kątem (angle), o jaki ma się obrócić robot. Dla liczb dodatnich wywołuje obrót w lewo (przeciwnie do ruchu wskazówek zegara). Liczby ujemne sprawiają, że bot obraca się w prawo (zgodnie z ruchem wskazówek zegara).

Zwracana wartośćEdytuj

Funkcja turn 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:Edytuj

errmode(0); // 1
int i = turn(30); // 2
if(i!=0) // 3
{
message("Nie mozna wykonac funkcji turn.", DisplayError);
return; // 4
}

Analiza przykładu dla początkujących:Edytuj

  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 turn 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.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Więcej z Fandomu

Losowa wiki