forked from mstfymrtc/ev3-prothonics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathonline-compiler-ex.pl
54 lines (38 loc) · 2.19 KB
/
online-compiler-ex.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
hasValue('FrontColorSensor', 'Red').
hasValue('RightColorSensor', 'Yellow').
hasValue('LeftColorSensor', 'Red').
takeDecision('MoveForward') :-
hasValue('FrontColorSensor', 'White'), !.
%if true dont look for the remainings = cut operator
%prolog decisionunu liste olarak alıp her item için iterate etmek
%gerekebilir. örn decisionlar MoveForward ve Eat ise, sırasıyla
%çalıştırılırlar
%+++++++++++ front sarıysa ilerle sonra yemek ye
takeDecision('MoveForward') :-
hasValue('FrontColorSensor', 'Yellow').
takeDecision('Eat') :-
hasValue('FrontColorSensor', 'Yellow'), !.
takeDecision('TurnRight') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'White').
takeDecision('MoveForward') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'White'), !.
%+++++++++++ front kırmızı ve sağ sarıysa sağa dön sonra ilerle, sonra yemek ye
takeDecision('TurnRight') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Yellow').
takeDecision('MoveForward') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Yellow').
takeDecision('Eat') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Yellow'), !.
%+++++++++++ front kırmızı ve sağ kırmızıysa ve sol beyazsa sola dön sonra ilerle
takeDecision('TurnLeft') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Red'), hasValue('LeftColorSensor', 'White').
takeDecision('MoveForward') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Red'), hasValue('LeftColorSensor', 'White'), !.
%+++++++++++ front kırmızı ve sağ kırmızıysa ve sol sarıysa sola dön sonra ilerle sonra yemek ye
takeDecision('TurnLeft') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Red'), hasValue('LeftColorSensor', 'Yellow').
takeDecision('MoveForward') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Red'), hasValue('LeftColorSensor', 'Yellow').
takeDecision('Eat') :-
hasValue('FrontColorSensor', 'Red'), hasValue('RightColorSensor', 'Red'), hasValue('LeftColorSensor', 'Yellow'), !.
%+++++++++++ front kırmızı ve sağ kırmızı ve sol kırmızıysa