Język PYTHON,
jest to zadanie 18 z LNU z pythona podstawowego. Nie potrzebuje gotowych rozwiązań, ale jakiś podpowiedzi i pomysłów. Wszystkie dane zostały podane w treści zadania.

Do pokonania ma korytarz o szerokości 2 metrów, który nigdzie nie rozwidla się i ma zakręty jedynie pod kątem prostym. Robot powinien zatrzymać się od razu po opuszczeniu budynku. Na zewnątrz budynku jest otwarta przestrzeń, bez żadnych przeszkód w promieniu co najmniej 50 metrów.

Robotem możesz sterować za pomocą funkcji:
move() - powoduje jazdę do przodu na odległość pół metra
turnL() - powoduje obrót w lewo o 90o
turnR() - powoduje obrót w prawo o 90o

Wskazania czujników zwracają funkcje:
front() - zwraca odległość do przeszkody z przodu robota w centymetrach
left() - zwraca odległość do przeszkody z lewej strony robota w centymetrach
right() - zwraca odległość do przeszkody z prawej strony robota w centymetrach

Uzupełnij funkcję route() tak, aby D500™ opuścił budynek:

def route():
move()


Odpowiedź :

Odpowiedź:

Nie ma więcej danych? Z tego co narazie podałeś, to trzeba po prostu funkcją front() sprawdzić, jak daleko jesteś od ściany z przodu. Można ustalić, że jak jesteś mniej niż metr, to ją wykrywa, skoro korytarz jest szerokości 2 metrów. Jeśli jesteś blisko, to trzeba sprawdzić z lewej strony funkcją left(). Potem trzeba sprawdzić funkcją right() czy nie ma po prawej stronie ściany,  bo jak nie ma ani po lewej, ani po prawej, to znaczy, że wyszedłeś z korytarza. Chyba, że chcesz jeszcze co 50 metrów sprawdzać za pomocą left i right sprawdzać czy nie ma ścian po bokach i czy jesteś już na zewnątrz. Jeśli będzie tam daleko od ściany, to znaczy, że trzeba w tamtą stronę się skierować funkcją turnL. Jeśli natomiast funkcja left() stwierdzi, że jest tam ściana, to skręcasz w prawo funkcją turnR(). Po skręceniu w lewo lub w prawo idziesz prosto za pomocą move(), aż nie napotkasz kolejnej ściany z przodu, albo po obu stronach po 50m będzie wolna przestrzeń, co będzie znaczyło, że wyszło się już z korytarza. Dlatego warto to zrobić w pętli while.

Wyjaśnienie:

Jak coś niejasne, albo chcesz przykładowy kod, to daj znać