pref(P,X) :- nb_current(P,_), nb_getval(P,Y), !, ( Y = X ; ( Y = nie(Z), Z \= X) ; Y = cokolwiek). pref(P,X) :- znajdzPCechy(P,XS), format("wybierz ~w\n", [P]), format("do wyboru masz:\n"), forall(member(I,XS), format("- ~w\n",[I])), format("- cokolwiek\n"), read(Y), nb_setval(P,Y), ( Y = X ; ( Y = nie(Z), Z \= X) ; Y = cokolwiek). prefb(P,X) :- nb_current(P,_), nb_getval(P,Y), !, Y=X. prefb(P,X) :- format("~w? (tak lub nie)\n",[P]), read(Y), nb_setval(P,Y), Y = X. termin(XS) :- nb_current(termin,_), nb_getval(termin,Y), !, member(X,XS), ( (Y1-Y2 = Y, X >= Y1, X =< Y2) ; (nie(Y1-Y2) = Y, (X < Y1 ; X > Y2)) ), !. termin(XS) :- format("wybierz termin jaki ci odpowiada\n"), format("przykladowo:\n"), format("3-5 (dowolny miesiac od marca do maja)\n"), format("nie(3-5) (dowolny miesiac nie bedacy miedzy marcem a majem)\n"), read(Y), nb_setval(termin,Y), member(X,XS), ( (Y1-Y2 = Y, X >= Y1, X =< Y2) ; (nie(Y1-Y2) = Y, (X < Y1 ; X > Y2)) ), !. ilosc(X) :- ludzie(L), length(L,X). maxIlosc(X) :- ilosc(Y), X >= Y. zabytki :- ludzie(L), \+ forall(member(C,L), C < 65). ludzie(X) :- nb_current(ludzie,_), nb_getval(ludzie,L), !, X = L. ludzie(X) :- format("podaj wiek wszystkich osob (np. [5,7,25,65])\n"), read(L), nb_setval(ludzie,L), X = L. cena(X) :- nb_current(maxCena,_), nb_getval(maxCena,Y), !, ilosc(I), X*I=