#cost = 11       8(9),200(1),200(1)
?- quake6(nezu).
inc :- magnitude(8),distance(20).
inc :- magnitude(8),distance(200).

quake6(Y4) :- soft(Y4),magnitude(Y3),distance(Y1),depth_(Y2),bad(Y3,Y1,Y2).
quake6(Y4) :- usual(Y4),magnitude(Y3),distance(Y1),depth_(Y2),terrible(Y3,Y1,Y2).
bad(X,Y,Z) :- strong(X),nearer(Y,Z).
bad(X,Y,Z) :- strong(X),near(Y),shallow(Z).
bad(X,Y,Z) :- great(X),ordinary(Y,Z).
terrible(X,Y,Z) :- great(X),nearer(Y,Z).
terrible(X,Y,Z) :- great(X),near(Y),shallow(Z).
nearer(Y,Z) :- near(Y),middle_depth(Z).
nearer(Y,Z) :- middle_distance(Y),shallow(Z).
ordinary(Y,Z) :- middle_distance(Y),middle_depth(Z).
ordinary(Y,Z) :- far(Y),shallow(Z).
ordinary(Y,Z) :- near(Y),deep(Z).

shallow(20).
middle_depth(50).
middle_depth(200).
deep(500).
near(20).
near(50).
middle_distance(200).
far(500).
weak(3).
middle_energy(5).
strong(7).
great(8).
depth_(20)/5.
depth_(50)/3.
depth_(200)/1.
depth_(500)/5.
distance(20)/5.
distance(50)/4.
distance(200)/1.
distance(500)/2.
magnitude(3)/1.
magnitude(5)/3.
magnitude(7)/7.
magnitude(8)/9.
hard(hongo).
hard(koukyo).
hard(dencho).
hard(maebashi).
usual(hakusan).
usual(yotsuya).
usual(shinjuku).
usual(ochanomizu).
soft(funabashi).
soft(ikebukuro).
soft(yokohama).
soft(nezu).
