begin %park%

Park(x, y) :- 
    x >= 0, x <= 100, y = 100.
    
Park(x, y) :- 
    x >= 0, x <= 100, y = 0.
    
Park(x, y) :- 
    x = 0, y >= 0, y <= 100.
    
Park(x, y) :- 
    x = 100, y >= 0, y <= 100.            

Gardon(id, x, y) :-
    id = "Gardon",
    x >= 10, x <= 40,
    y >= 10, y <= 30.
    
Lake(id, x, y) :-
    id = "Lake",
    x >= 10, x <= 40,
    y >= 50, y <= 80, x + y <= 100.
    
Playground(id, x, y) :-
    id = "Playground",
    x >= 60, x <= 80,
    y >= 30, y <= 70.
    
Fountain(id, x, y) :-
    id = "Fountain",
    x >= 70, x <= 72,
    y >= 90, y <= 92.
    
Road(id, x, y) :-
    id = "RD_A",
    x >= 20, x <= 50,
    x + y = 130.
    
Road(id, x, y) :-
    id = "RD_A",
    x >= 50, x <= 120,
    y = 80.
    
Road(id, x, y) :-
    id = "RD_B",
    x = 50,
    y >= -20, y <= 80.
    
Road(id, x, y) :-
    id = "RD_C",
    x >= -10, x <= 50,
    y = 40.
    
Road(id, x, y) :-
    id = "RD_D",
    x >= 50, x <= 110,
    y = 20.                

Entrance(id, x, y, t) :- 
    id = "North",
    x >= 28, x <= 32,
    y >= 98, y <= 102,
    t >= 0, t <= 80.
    
Entrance(id, x, y, t) :- 
    id = "West",
    x >= -2, x <= 2,
    y >= 38, y <= 42,
    t >= 0, t <= 80. 

Entrance(id, x, y, t) :- 
    id = "South",
    x >= 48, x <= 52,
    y >= -2, y <= 2,
    t >= 0, t <= 100. 

Entrance(id, x, y, t) :- 
    id = "East1",
    x >= 98, x <= 102,
    y >= 78, y <= 82,
    t >= 0, t <= 100. 

Entrance(id, x, y, t) :- 
    id = "East2",
    x >= 98, x <= 102,
    y >= 18, y <= 22,
    t >= 0, t <= 100. 


ParkingLot(id, x, y, t) :-
    id = "Lot1",
    x >= 47, x <= 50,
    y >= 78, y <= 80,
    t >= 0, t <= 100.
    
ParkingLot(id, x, y, t) :-
    id = "Lot2",
    x >= 10, x <= 12,
    y >= 38, y <= 40,
    t >= 0, t <= 100.    
    
ParkingLot(id, x, y, t) :-
    id = "Lot3",
    x >= 48, x <= 50,
    y >= 37, y <= 40,
    t >= 0, t <= 100.
    
ParkingLot(id, x, y, t) :-
    id = "Lot4",
    x >= 50, x <= 52,
    y >= 18, y <= 20,
    t >= 0, t <= 100.    
    
    
Tourist(Name, x, y, t) :-
    Name = "Anderson",
    x - 3t >= 19, x - 3t <= 21,
    x + y >= 129, x + y <= 131,
    t >= 0, t <= 10.
    
Tourist(Name, x, y, t) :-
    Name = "Anderson",
    x >= 48, x <= 50,
    y >= 78, y <= 80,
    t >= 10, t <= 20.    
    
Tourist(Name, x, y, t) :-
    Name = "Anderson",
    x >= 49, x <= 51,
    y + 2t >= 119, y + 2t <= 121,
    t >= 20, t <= 50.    
    
Tourist(Name, x, y, t) :-
    Name = "Anderson",
    x - 2t >= -51, x - 2t <= -49,
    y >= 19, y <= 21,
    t >= 50, t <= 80.
    
Tourist(Name, x, y, t) :-
    Name = "Ben",
    x - 2t >= -11, x - 2t <= -9,
    y >= 39, y <= 41,
    t >= 0, t <= 10.
    
Tourist(Name, x, y, t) :-
    Name = "Ben", 
    x >= 10, x <= 12, 
    y >= 38, y <= 40,
    t >= 10, t <= 50.
    
Tourist(Name, x, y, t) :-
    Name = "Ben",
    x - 2t >= -91, x - 2t <= -89,
    y >= 39, y <= 41,
    t >= 50, t <= 70.    

Tourist(Name, x, y, t) :-
    Name = "Ben",
    x >= 49, x <= 51,
    y + 2t >= 179, y + 2t <= 181,
    t >= 70, t <= 100.
    
Tourist(Name, x, y, t) :-
    Name = "Carl",
    x + 3t >= 259, x + 3t <= 261,
    y >= 19, y <= 21,
    t >= 50, t <= 70.

Tourist(Name, x, y, t) :-
    Name = "Carl",
    x >= 49, x <= 51,
    y - 2t >= -121, y - 2t <= -119,
    t >= 70, t <= 80.
    
Tourist(Name, x, y, t) :-
    Name = "Carl",
    x + 3t >= 289, x + 3t <= 291,
    y >= 39, y <= 41,
    t >= 80, t <= 100.    
    
end %park%