Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :- dynamic xpositive/2.
- :- dynamic xnegative/2.
- vehicle_is("Ferrari LaFerrari") :-
- it_is(car),
- it_is(sportcar),
- positive(is, expensive).
- vehicle_is("Toyota GT86") :-
- it_is(car),
- it_is(sportcar),
- negative(is, expensive).
- vehicle_is("Aston Martin Cygnet") :-
- it_is(car),
- it_is(citycar),
- positive(is, expensive).
- vehicle_is("Toyota Yaris") :-
- it_is(car),
- it_is(citycar),
- negative(is, expensive).
- vehicle_is("Boeing 777") :-
- it_is(plane),
- it_is(passanger_plane),
- positive(is, american),
- negative(is, netherland).
- vehicle_is("Airbus A380") :-
- it_is(plane),
- it_is(passenger_plane),
- positive(is, netherland),
- negative(is, american).
- vehicle_is("Paraglider") :-
- it_is(plane),
- it_is(glider),
- positive(seat, harness),
- negative(seat, seat).
- vehicle_is("Sailplane") :-
- it_is(plane),
- it_is(glider),
- negative(seat, harness),
- positive(seat, seat).
- vehicle_is("Catamaran") :-
- it_is(ship),
- it_is(yacht),
- positive(has, one_mast),
- positive(has, two_bodies),
- negative(has, one_body),
- negative(has, square_rig),
- positive(has, triangle_rig).
- vehicle_is("Brig") :-
- it_is(ship),
- it_is(yacht),
- negative(has, one_mast),
- positive(has, two_masts),
- negative(has, two_bodies),
- positive(has, one_body),
- positive(has, square_rig),
- negative(has, triangle_rig).
- vehicle_is("Scooter") :-
- it_is(ship),
- it_is(motorboat),
- positive(is, fast).
- vehicle_is("Barge") :-
- it_is(ship),
- it_is(motorboat),
- negative(is, fast).
- % Klasy glowne
- it_is(car) :-
- positive(does, drive),
- positive(has, wheels),
- negative(has, wings),
- negative(does, fly),
- negative(does, swim),
- positive(has, engine).
- it_is(plane) :-
- positive(does, fly),
- positive(has, wings),
- positive(has, wheels),
- positive(does, drive),
- negative(does, swim).
- it_is(ship) :-
- positive(does, swim),
- negative(does, drive),
- negative(does, fly),
- negative(has, wings),
- negative(has, wheels).
- % Podklasy
- it_is(sportcar) :-
- positive(is, fast).
- it_is(citycar) :-
- negative(is, fast).
- it_is(passenger_plane) :-
- positive(has, engine),
- positive(has, "many places").
- it_is(glider) :-
- negative(has, engine),
- negative(has, "many places"),
- positive(is, fast).
- it_is(yacht) :-
- negative(has, engine).
- it_is(motorboat) :-
- positive(has, engine).
- %szukanie potwierdzenia cechy obiektu w dynamicznej bazie
- positive(X,Y) :-
- xpositive(X,Y),!.
- positive(X,Y) :-
- not(xnegative(X,Y)) , ask(X,Y,yes).
- negative(X,Y) :-
- xnegative(X,Y),!.
- negative(X,Y) :-
- not(xpositive(X,Y)) , ask(X,Y,no).
- %zadawanie pytań użytkownikowi
- ask(X,Y,yes) :-
- write(X), write(' it '),write(Y), write('\n'),
- read(Reply),
- sub_string(Reply,0,1,_,'y'),!,
- remember(X,Y,yes).
- ask(X,Y,no) :-
- write(X), write(' it '),write(Y), write('\n'),
- read(Reply),
- sub_string(Reply,0,1,_, 'n'),!,
- remember(X,Y,no).
- %zapamiętanie odpowiedzi w dynamicznej bazie
- remember(X,Y,yes) :-
- asserta(xpositive(X,Y)).
- remember(X,Y,no) :-
- asserta(xnegative(X,Y)).
- %uruchomienie programu
- run :-
- vehicle_is(X),!,
- write('\nYour vehicle may be a(n) '),write(X),
- nl,nl,clear_facts.
- run :-
- write('\nUnable to determine what'),
- write('your vehicle is.\n\n'),clear_facts.
- %wyczyszczenie zawartości dynamicznej bazy
- clear_facts :-
- retract(xpositive(_,_)),fail.
- clear_facts :-
- retract(xnegative(_,_)),fail.
- clear_facts :-
- write('\n\nPlease press the space bar to exit\n').
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement