Problemami nie wykonania zadań z poprzednich zajęć były problemy z połączeniem się z robotem. Tym razem robot był dla nas bardziej łaskawy, więc bez problemów zaimplementowaliśmy algorytm 1:
:- consult('plnxt.pl').
start :-
write('-- start 0.3 --'),
nxt_light_LED(activate),
gogo.
gogo :-
nxt_go(250),
trigger_create(_, check_light, escape).
check_light :-
nxt_light(V, force),
V < 45.
escape :-
Angle is 150 + random(60),
nxt_rotate(100, Angle, force),
gogo.
% :- start.
Efekt był taki jakiego oczekiwaliśmy, co przetestowaliśmy kilkakrotnie, na załączonej macie. |A tak wyglądał rezulatat czy coś tam :P(wrzuć zdj)|
Algorytm 2 był nieco bardziej rozbudowany, jednak nie oznaczało to dla nas, że był trudniejszy:
:- consult('plnxt.pl').
start :-
write('-- start 0.6 --'),
nxt_light_LED(activate),
gogo.
gogo :-
nxt_go(100),
trigger_create(_, check_light, align),
trigger_create(_, nxt_touch(1, force), wait_free_path).
check_light :-
nxt_light(V, force),
V > 46.
align :-
trigger_killall,
nxt_rotate(100, 3, force),
gogo.
wait_free_path :-
trigger_killall,
nxt_stop,
nxt_play_tone(500,500),
trigger_create(_, nxt_touch(0, force), gogo).
stop :-
trigger_killall,
nxt_stop.
% :- start.
Franek poruszał się po czarnej linii, a gdy napotkał przeszkodę, wydał dźwięk zatrzymując się. Po zwolnieniu blokady robot grzecznie ruszył do przodu tak jak poprzednio.