Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- start :-
- wprowadzenie,
- reset_answers,
- znajdz_cwiczenie(Cwiczenie),
- opis(Cwiczenie), nl.
- wprowadzenie :-
- write('Jakie ćwiczenie wybrać?'), nl,
- write('By odpowiedzieć, wybierz odpowiednią liczbę i zakończ kropką (.)'), nl, nl.
- znajdz_cwiczenie(Cwiczenie) :-
- cwiczenie(Cwiczenie), !.
- :- dynamic(progress/2).
- reset_answers :-
- retract(progress(_, _)),
- fail.
- reset_answers.
- % baza wiedzy
- cwiczenie(ohp) :-
- sport([dwuboj, trojboj]),
- poziom([amator, sredni]),
- partia(rece).
- cwiczenie(biceps) :-
- sport(klturystyka),
- poziom([amator, sredni, zawodnik]),
- partia(rece).
- cwiczenie(klokov) :-
- sport(dwuboj),
- poziom(zawodnik),
- partia(rece).
- cwiczenie(ohp_za_glowy) :-
- sport(trojboj),
- poziom(zawodnik),
- partia(rece).
- cwiczenie(lawka) :-
- sport([trojboj, kulturystyka]),
- poziom([amator, sredni, zawodnik]),
- partia(klata).
- cwiczenie(brak) :-
- sport(dwuboj),
- poziom([amator, sredni, zawodnik]),
- partia(klata).
- cwiczenie(podciaganie) :-
- sport(dwuboj),
- poziom([amator, sredni, zawodnik]),
- partia(plecy).
- cwiczenie(wioslowanie) :-
- sport(kulturystyka),
- poziom([amator, sredni, zawodnik]),
- partia(plecy).
- cwiczenie(martwy) :-
- sport(trojboj),
- poziom([amator, sredni, zawodnik]),
- partia(plecy).
- cwiczenie(front) :-
- sport(dwuboj),
- poziom([sredni, zawodnik]),
- partia(nogi).
- cwiczenie(highbar) :-
- sport(dwuboj),
- poziom(amator),
- partia(nogi).
- cwiczenie(lowbar) :-
- sport(trojboj),
- poziom([amator, sredni, zawodnik]),
- partia(nogi).
- cwiczenie(sownica) :-
- sport(kulturystyka),
- poziom([amator, sredni, zawodnik]),
- partia(nogi).
- % pytania
- pytanie(sport) :-
- write('Jaki sport uprawiasz?'), nl.
- pytanie(poziom) :-
- write('Jaki jest twoj poziom zaawansowania?'), nl.
- pytanie(partia) :-
- write('Jaka partia ciała?'), nl.
- % odpowiedzi
- odpowiedz(dwuboj) :-
- write('Dwuboj olimpijski').
- odpowiedz(trojboj) :-
- write('Trójbój siłowy').
- odpowiedz(kulturystyka) :-
- write('Kulturystyka').
- odpowiedz(amator) :-
- write('Amator').
- odpowiedz(sredni) :-
- write('Średnio-zaawansowany').
- odpowiedz(zawodnik) :-
- write('Startujący na zawodach').
- odpowiedz(rece) :-
- write('Rece').
- odpowiedz(klata) :-
- write('Klatka piersiowa').
- odpowiedz(plecy) :-
- write('Plecy').
- odpowiedz(nogi) :-
- write('Nogi').
- % opisy
- opis(ohp) :-
- write('Wyciskanie sztangi z przed twarzy stojąc'), nl.
- opis(biceps) :-
- write('Uginanie blabla'), nl.
- opis(klokov) :-
- write('Strict OHP'), nl.
- opis(ohp_za_glowy) :-
- write('Wyciskanie sztangi zza glowy stojąc'), nl.
- opis(lawka) :-
- write('Wyciskanie sztangi lezac'), nl.
- opis(brak) :-
- write('Brak takiego ćwiczenia'), nl.
- opis(podciaganie) :-
- write('Nachwyt'), nl.
- opis(wioslowanie) :-
- write('Przyciąganie sztangi do brzucha'), nl.
- opis(martwy) :-
- write('Podnoszenie sztangi do pasa'), nl.
- opis(front) :-
- write('przysiad przedni'), nl.
- opis(highbar) :-
- write('przysiad ze sztangą na kapturach'), nl.
- opis(lowbar) :-
- write('przysiad ze sztangą na barkach'), nl.
- opis(sownica) :-
- write('przysiad na sownicy'), nl.
- % pytania
- sport(Answer) :-
- progress(sport, Answer).
- sport(Answer) :-
- \+ progress(sport, _),
- ask(sport, Answer, [dwuboj, trojboj, kulturystyka]).
- poziom(Answer) :-
- progress(poziom, Answer).
- poziom(Answer) :-
- \+ progress(poziom, _),
- ask(poziom, Answer, [amator, sredni, zawodnik]).
- partia(Answer) :-
- progress(partia, Answer).
- partia(Answer) :-
- \+ progress(partia, _),
- ask(partia, Answer, [rece, klata, plecy, nogi]).
- % Sformatowana lista
- answers([], _).
- answers([First|Rest], Index) :-
- write(Index), write(' '), odpowiedz(First), nl,
- NextIndex is Index + 1,
- answers(Rest, NextIndex).
- % Zwraca index
- parse(0, [First|_], First).
- parse(Index, [First|Rest], Response) :-
- Index > 0,
- NextIndex is Index - 1,
- parse(NextIndex, Rest, Response).
- % Pyta i zapisuje odpowiedz
- ask(Question, Answer, Choices) :-
- pytanie(Question),
- answers(Choices, 0),
- read(Index),
- parse(Index, Choices, Response),
- asserta(progress(Question, Response)),
- Response = Answer.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement