@maksimpojar

Как улучшить код?

Добрый день, при написании кода для простейшей экспертной системы столкнулся с такой проблемой что несколько раз дублируется первый вопрос.
Вот код:
:- dynamic yes/1.
:- dynamic no/1.    

game("ACTION STRATEGY"):- positive("Igra avtonomna"),negative("Igra 1m glavnym geroem"),
                    negative("Statichnaya grafika"),negative("Stroit' virtual'nye goroda").
game("RPG"):- positive("Igra avtonomna"),positive("Igra 1m glavnym geroem"),
                    negative("Statichnaya grafika"),negative("Stroit' virtual'nye goroda").
game("QUEST"):- positive("Igra avtonomna"),positive("Igra 1m glavnym geroem"),
                    positive("Statichnaya grafika"),negative("Stroit' virtual'nye goroda").
game("RTS"):- positive("Igra avtonomna"),positive("Igra 1m glavnym geroem"),
                    negative("Statichnaya grafika"),positive("Stroit' virtual'nye goroda").
game("MOBA"):- negative("Igra avtonomna"),negative("Igra 1m glavnym geroem"),
                    negative("Statichnaya grafika"),negative("Stroit' virtual'nye goroda"),
    		        positive("Komandnya igra").
game("FPS"):- negative("Igra avtonomna"),negative("Igra 1m glavnym geroem"),
                    negative("Statichnaya grafika"),negative("Stroit' virtual'nye goroda"),
    		        negative("Komandnya igra"),positive("Nuzhno strelyat' iz oruzhiya").
game("MMORPG"):- negative("Igra avtonomna"),negative("Igra 1m glavnym geroem"),
                    negative("Statichnaya grafika"),negative("Stroit' virtual'nye goroda"),
    		        negative("Komandnya igra"),negative("Nuzhno strelyat' iz oruzhiya"),
    				positive("Nuzhno vypolnyat' zadaniya").
game("К сожалению такой жанр игры мне не знаком =(").


positive(X)  :- yes(X),!;  ask(X,R),R=="Y".
negative(X) :- no(X),!;  ask(X,R), R=="N".

ask(X,R):- string_concat(X," ? ",T), write(T), read_line_to_string(user_input,R), remember(X,R).

remember(X,"Y"):- asserta(yes(X)). 
remember(X,"N"):- asserta(no(X)).

А вот собственно сама проблема:
62ac41fd3c004336339251.jpeg
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы