:- consult('./plnxt.pl').
start :-
nxt_light_LED(activate),
nxt_goal(henio, prog),
trigger_create(_,czy_czarny,turn),
trigger_create(_,clap,stop).
obroty :-
trigger_create(_,czy_czarny,turn).
prog :-
nxt_go_cm(150,100),
prog.
prog2 :-
sleep(1),
% trigger_create(a,czy_czarny,turn),
% trigger_kill(a),
nxt_go_cm(300,1),
prog.
turn :-
nxt_stop,
nxt_go(-300,force),
sleep(2),
nxt_turn(400,30),
%
% stop,
% nxt_turn(800,90),
trigger_create(_,czy_czarny,turn)
panika :-
nxt_stop,
nxt_go_cm(800,10),
nxt_rotate(800,45),
nxt_go_cm(800,10),
nxt_rotate(800,-90),
nxt_go_cm(800,20),
nxt_rotate(800,90),
nxt_go_cm(800,10),
nxt_rotate(800,-45).
czy_koniec :-
trigger_create(_,push,stop).
clap :-
nxt_sound(Value,force),
Value > 15.
push :-
nxt_stop,
nxt_touch(Value,force),
Value = 1.
czy_czarny :-
light(V),
V<59.
czy_czerwony :-
light(V),
V<31,
v>25.
czy_bialy :-
light(V),
V>60.
light(Value) :-
%nxt_stop,
nxt_light(Value,force).
%write("light wynosi "),write(Value)
stop :-
trigger_killall,
nxt_stop.
Niestety w początkowej fazie implementacji popełniliśmy błąd, który dzięki pomocy prowadzącego zostął naprawiony.
Przez wykonanie owego błędu nie mogliśmy ukończyć laboratorium.
Zdefinjowany algorytm jest jedynie więzniem, który napotykając obiekt zatrzymuje się.
Dodatkowo z porzednich laboratoriów umięscilsmy w programie awaryjne wyłączenie robota w skutek klasnięcia.