📄 anim.pro
字号:
/*--------------------------------------------------------
animal (1993.6)
---------------------------------------------------------*/
domains
tone = integer*
song = tone*
database
xpositive(string,string)
xnegative(string,string)
predicates
tras(integer,integer)
sing (song)
run
animal_is(string)
it_is(string)
positive(string,string)
negative(string,string)
clear_facts
remember(string,string,string)
ask(string,string)
clauses
tras(1,131).
tras(2,147).
tras(3,165).
tras(4,175).
tras(5,196).
tras(6,220).
tras(7,247).
tras(8,262).
sing([]).
sing([[T1,T2]|Y]):-tras(T1,Freq),Dura=T2*40,
sound(Dura,Freq),sing(Y).
run:-
animal_is(X),!,
write("\n--------------------------\n 该动物可能是 ", X),
write("\n--------------------------\n"),
nl,nl,clear_facts.
run:-
write("\n 不对起,无法确定"),
write(" 该动物是什么 .\n\n"), clear_facts.
positive(X,Y) :- xpositive(X,Y),!.
positive(X,Y) :- not(xnegative(X,Y)), ask(X,Y).
negative(X,Y) :- xnegative(X,Y),!.
negative(X,Y) :- not(xpositive(X,Y)), ask(X,Y).
ask(X,Y):-
write("\n 该动物",X,Y," ? ( y / n ) "),
readln(Reply),
remember(X,Y,Reply).
remember(X,Y,"y"):-
asserta(xpositive(X,Y)).
remember(X,Y,"n"):-
asserta(xnegative(X,Y)),
fail.
remember(_,_,"q"):-exit.
clear_facts:-
retract(xpositive(_,_)),fail.
clear_facts:-
retract(xnegative(_,_)),fail.
clear_facts:-
write(" 请键入空格,退出 ! \n"),
readchar(_).
animal_is("豹") :-
it_is("脯乳动物"),
it_is("食肉动物") ,
positive("是","黄褐色的"),
positive("有","黑色斑点").
animal_is("虎") :-
it_is("脯乳动物") ,
it_is("食肉动物"),
positive("是","黄褐色的"),
positive("有","黑色条纹").
animal_is("长颈鹿") :-
it_is("蹄类动物"),
positive("有","长脖子"),
positive("有","长腿"),
positive("有","黑色斑点").
animal_is("斑马") :-
it_is("蹄类动物"),
positive("有","黑色条纹").
animal_is("鸵鸟") :-
it_is("鸟") ,
negative("会","飞") ,
positive("有","长脖子"),
positive("有","长腿"),
positive("是","黑白色的").
animal_is("企鹅") :-
it_is("鸟"),
negative("会","飞") ,
positive("会","游泳"),
positive("有","黑白色的").
animal_is("信天翁"):-
it_is("鸟") ,
positive("会","很善飞").
it_is("脯乳动物") :-
positive("有","毛发"),!.
it_is("脯乳动物") :-
positive("有","奶"),!.
it_is("鸟") :-
positive("有","羽毛"),!.
it_is("鸟") :-
positive("会","飞") ,!,
positive("会","下蛋"),!.
it_is("食肉动物") :-
positive("会","吃肉"),!.
it_is("食肉动物") :-
positive("有","犬齿") ,!,
positive("有","爪") ,!,
positive("有","眼看前方"),!.
it_is("蹄类动物") :-
it_is("脯乳动物") ,!,
positive("有","蹄"),!.
it_is("蹄类动物") :-
it_is("脯乳动物") ,!,
positive("是","嚼食动物"),!.
goal
/* graphics (2,0,1), * 1,1,3 */
makewindow(1,7,0,"",0,0,25,80),
sing([[1,1],[2,1],[3,1],[4,1]]),
makewindow(1,78,0,"",10,25,3,30),
nl,write(" 动 物 分 类 专 家 系 统 "),
sing([[5,1],[6,1],[7,1],[8,1]]),
readchar(_),
makewindow (1,108,0," 动 物 分 类 专 家 系 统 ",2,4,18,70 ),
sing([[1,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1]]),
run.
/* graphics(2,0,1). */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -