Różnice
Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:piw:2010:sprawozdania:piw20100602-17e [2010/06/08 20:25] piw10 |
pl:dydaktyka:piw:2010:sprawozdania:piw20100602-17e [2019/06/27 15:50] (aktualna) |
| |
<code prolog> | <code prolog> |
| |
| start :- |
| %nxt_open, |
| main. |
| |
| main :- |
| check_distance(0,[]). |
| %koniec. |
| |
| check_distance(360,L) :- |
| trigger_create(_,klask,sprawdz(L)). |
| |
| check_distance(X,L) :- |
| nxt_ultrasonic(Value,force), |
| X1 is X + 10, |
| obracaj(X1,[Value|L]). |
| |
| klask :- |
| nxt_sound(Value), |
| Value > 50. |
| |
| obracaj(X,L) :- |
| nxt_rotate(100,10), |
| check_distance(X,L). |
| |
| sprawdz(L) :- |
| nxt_play_tone(5000, 1000), |
| trigger_killall, |
| check_distance_2(0,L). |
| |
| check_distance_2(X,[Head|L]) :- |
| nxt_ultrasonic(Value,force), |
| Value = Head, |
| X1 is X + 10, |
| obracaj2(X1,L). |
| |
| obracaj2(X,L) :- |
| nxt_rotate(-100,10), |
| check_distance_2(X,L). |
| |
| check_distance_2(X,[Head|L]) :- |
| nxt_ultrasonic(Value,force), |
| Value \= Head, |
| nxt_go_cm(100,Value), |
| koniec. |
| |
| check_distance_2(360,_) :- |
| koniec. |
| |
| koniec :- |
| nxt_play_tone(5000, 500), |
| finish. |
| |
| finish :- |
| nxt_stop. |
| %nxt_close. |
| |
</code> | </code> |