-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrooms.pl
91 lines (73 loc) · 2.48 KB
/
rooms.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
This imported file defines what locations are in the game and how they are connected.
It also defines helper predicates to get a list of all the locations,
or a trimmed version of it, depending on the use case.
*/
/* all rooms in the maze */
locations(Locations):-
Locations = [grey_area, room1, room2, room3, room4, room5, room6, room7, room8,
room9, room10, room11, jungle].
locations_no_goal(Locations):-
locations(All_locations),
reverse(All_locations, [_|Reversed]),
reverse(Reversed, Locations).
locations_no_start(Locations):-
locations([_|Locations]).
locations_no_ends(Locations):-
locations([_|No_start]),
reverse(Rev_no_start, No_start),
Rev_no_start = [_|Rev_no_ends],
reverse(Locations, Rev_no_ends), !.
/* directions from one room to the other */
connected(grey_area, south, room1).
connected(grey_area, west, room1).
connected(grey_area, north, room1).
connected(grey_area, east, room1).
connected(room1, south, grey_area).
connected(room1, west, room3).
connected(room1, north, room2).
connected(room1, east, room4).
connected(room2, south, room1).
connected(room2, west, room6).
connected(room2, north, room9).
connected(room2, east, room4).
connected(room3, south, room1).
connected(room3, north, room6).
connected(room4, south, room1).
connected(room4, west, room2).
connected(room4, east, room11).
connected(room5, south, room9).
connected(room5, west, room7).
connected(room5, north, room8).
connected(room6, south, room3).
connected(room6, north, room7).
connected(room6, east, room2).
connected(room7, south, room6).
connected(room7, west, grey_area).
connected(room7, north, room10).
/* connected(room7, east, room5). */
connected(room8, south, room9).
/* connected(room8, west, room6). */
connected(room8, north, jungle).
connected(room8, east, room11).
connected(room11, north, room8).
connected(room11, south, room4).
/* connected(room9, south, room1). */
connected(room9, west, room5).
connected(room9, north, room10).
connected(room9, east, room8).
connected(room10, south, room9).
connected(room10, west, room7).
room_name(grey_area, "Obscure court").
room_name(room1, "Jaggernaut place").
room_name(room2, "Elm villa").
room_name(room3, "Splinter corner").
room_name(room4, "Plumber cave").
room_name(room5, "Gromit kindergarden").
room_name(room6, "Elephant villa").
room_name(room7, "Zion cloud").
room_name(room8, "Back beach").
room_name(room9, "Trouble bubble").
room_name(room10, "Crow stash").
room_name(room11, "Water stone").
room_name(jungle, "Monkeys jungle").