8
10:-swi_module(mobVacuum,[]). 11
14
15:- include(prologmud(mud_header)). 17
19
20tCol(mobVacuum).
21tCol(mobVacuum).
22
23world_agent_plan(_World,Agent,Act):-
24 isa(Agent,mobVacuum),
25 vacuum_idea(Agent,Act).
26
27vacuum_idea(Agent,actTake(tPowerOutlet)) :-
28 mudEnergy(Agent,Charge),
29 Charge < 490,
30 mudNearBody(Agent,What),
31 member(tPowerOutlet,What).
32vacuum_idea(Agent,actTake(tDirt)) :-
33 mudNearBody(Agent,What),
34 member(tDirt,What).
35vacuum_idea(Agent,actMove(Dir)) :-
36 mudEnergy(Agent,Charge),
37 Charge < 200,
38 mudGetPrecepts(Agent,List),
39 list_object_dir_sensed(_,List,tPowerOutlet,Dir),
40 number_to_dir(N,Dir,vHere),
41 nth1(N,List,What),
42 (What == [];
43 What == [tDirt];
44 What == [tPowerOutlet]).
45vacuum_idea(Agent,actClimb(Dir)) :-
46 mudEnergy(Agent,Charge),
47 Charge < 200,
48 mudGetPrecepts(Agent,List),
49 list_object_dir_sensed(_,List,tPowerOutlet,Dir),
50 number_to_dir(N,Dir,vHere),
51 nth1(N,List,What),
52 (What == [tLowBox];
53 What == [tLowWall]).
54vacuum_idea(Agent,actMove(Dir)) :-
55 mudGetPrecepts(Agent,List),
56 list_object_dir_sensed(_,List,tDirt,Dir),
57 number_to_dir(N,Dir,vHere),
58 nth1(N,List,What),
59 (What == [];
60 What == [tDirt];
61 What == [tPowerOutlet]).
62vacuum_idea(Agent,actClimb(Dir)) :-
63 mudGetPrecepts(Agent,List),
64 list_object_dir_sensed(_,List,tDirt,Dir),
65 number_to_dir(N,Dir,vHere),
66 nth1(N,List,What),
67 (What == [tLowBox];
68 What == [tLowWall]).
69
70vacuum_idea(Agent,Act) :- move_or_sit_memory_idea(Agent,Act,[tPowerOutlet]).
71
72
73
74
75
76:- include(prologmud(mud_footer)).