:- module(map, [connects/3, writeExits/1]). writeExits(L) :- connects(L,_,D), join(['You see an exit to the ',D,'.\n'],M), write(M), fail. writeExits(_) :- true. % map has 20 rooms, labelled a through t % connections between rooms inscribe a dodecahedron, with the rooms % corresponding to the vertices and the connections between them to % the edges % loop around the middle connects(a,b,northeast). connects(b,c,southeast). connects(c,d,northeast). connects(d,e,southeast). connects(e,f,northeast). connects(f,g,southeast). connects(g,h,northeast). connects(h,i,southeast). connects(i,j,northeast). connects(j,a,southeast). % loop in the other direction around the middle connects(a,j,northwest). connects(j,i,southwest). connects(i,h,northwest). connects(h,g,southwest). connects(g,f,northwest). connects(f,e,southwest). connects(e,d,northwest). connects(d,c,southwest). connects(c,b,northwest). connects(b,a,southwest). % connections from the middle loop up to the top pentagon connects(b,k,north). connects(d,l,north). connects(f,m,north). connects(h,n,north). connects(j,o,north). % connections from the top pentagon down to the middle loop connects(k,b,south). connects(l,d,south). connects(m,f,south). connects(n,h,south). connects(o,j,south). % connections around the top pentagon connects(k,l,east). connects(l,m,east). connects(m,n,east). connects(n,o,east). connects(o,k,east). % connections around the top pentagon in the other direction connects(l,k,west). connects(m,l,west). connects(n,m,west). connects(o,n,west). connects(k,o,west). % connections from the middle loop to the bottom pentagon connects(a,p,south). connects(c,q,south). connects(e,r,south). connects(g,s,south). connects(i,t,south). % connections from the bottom pentagon up to the middle loop connects(p,a,north). connects(q,c,north). connects(r,e,north). connects(s,g,north). connects(t,i,north). % connections around the bottom pentagon connects(p,q,east). connects(q,r,east). connects(r,s,east). connects(s,t,east). connects(t,p,east). % connections around the bottom pentagon in the other direction connects(q,p,west). connects(r,q,west). connects(s,r,west). connects(t,s,west). connects(p,t,west).