Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
% DOG main :- purebreddog. purebreddog:- retractall(known(_,_,_)), % clear stored information dog(X), write('The dog is a '),write(X),nl. purebreddog:- write('That dog is not found in the list'),nl. % % Data: dog(X) :- attributes(Y) group('Working Group'):- size(meduim_and_large). group('Guard Group'):- size(large). group('Sports Group'):- size(small). group('Non-sporting Group):- size(small_and_large). group('Toy Group'):- size(small). dog('Neapolitan Mastiff'):- size(large), coat(loose_skin_coat), ear(v_shape_round_tip_droopy_ear), color(grey). dog('Bull Mastiff'):- size(large), coat(short_length_coat), ear(v_shape_round_tip_droopy_ear), color(brown/gold). dog('Spanish Mastiff'):- size(large), coat(medium_length_coat), ear(v_shape_round_tip_droopy_ear), color(brown/gold). dog('Tibetan Mastiff'):- size(large), coat(long_length_coat), ear(v_shape_round_tip_droopy_ear), color(black). dog('Pyrenean Mastiff'):- size(large), coat(medium_length_coat), ear(v_shape_round_tip_droopy_ear), color(white_with_patchy_black). dog('Bullmatian'):- size(medium), coat(short_length_coat), ear(v_shape_round_tip_droopy_ear), color(white_with_patchy_black). dog('Dalmatian'):- size(medium), coat(short_length_coat), ear(v-shape droopy ear), color(white_with_patchy_black). dog('French Bullhuahua'):- size(medium), coat(short_length_coat), ear(v_shape_droopy_ear), color(brown/gold). dog('Bull Boxer'):- size(medium), coat(short_length_coat), ear(v_shape_droopy_ear), color(brown/gold). dog('Frenchie'):- size(medium), coat(short_length_coat), ear(v_shape_droopy_ear), color(white_with_patchy_brown). dog('Bullador'):- size(medium), coat(short_length_coat), ear(v_shape_round_tip_droopy_ear), color(black). dog('Bulldog'):- size(medium), coat(short_length_coat), ear(v_shape_droopy_ear), color(white_with_patchy_brown). dog('Pomsky'):- size(small), coat(medium_length_coat), ear(v_shape_droopy_ear), color(white_with_patchy_black). dog('Bichonaranian'):- size(small), coat(medium_length_coat), ear(v_shape_round_tip_droopy_ear), color(white). dog('Dameranian'):- size(small), coat(medium_length_coat), ear(v_shape_round_tip_droopy_ear), color(black). dog('Shiranian'):- size(small), coat(long_length_coat), ear(v_shape_droopy_ear), color(white). dog('Pomerenian'):- size(small), coat(long_length_coat), ear(v-shape_perky_ear), color(brown/gold). dog('Jack-A-Ranian'):- size(small), coat(medium_length_coat), ear(v_shape_perky_ear), color(wite_with_patchy_bown). % Expert recogniser % Asks for group group(X) :- menuask(group, X, [working group, guard group, sports group, non-sport group, toy group]). % Ask for sizes large(X) :- ask(large, X). medium(X) :- ask(medium, X). small(X) :- ask(small, X). % ask for coat coat(X) :- menuask(coat, X, [loose skin coat, short length coat, medium length coat, long length coat]). ear(X) :- ask(ear, X). color(X) :- menuask(color, X, [white with patchy brown, white with patchy black, brown/gold, white, black, grey]). ask(Attr, Val) :- known(yes, Attr, Val), !. menuask(Attr, Val, _) :- known(yes, Attr, Val), !. ask(Attr, Val) :- known(yes, Attr, V), V \== Val, !, fail. menuask(Attr, Val, _) :- known(yes, Attr, V), V \== Val, !, fail. ask(Attr, Val) :- write(Attr:Val), write('? '), read(Ans), asserta(known(Ans, Attr, Val)), Ans == yes. menuask(Attr, Val, List) :- write('What is the value for '), write(Attr), write('? '), nl, write(List), nl, read(Ans), check_val(Ans, Attr, Val, List), asserta(known(yes, Attr, Ans)), Ans == Val. check_val(Ans, _, _, List) :- member(Ans, List), !. check_val(Ans, Attr, Val, List) :- write(Ans), write(' is not a known answer, please try again.'), nl, menuask(Attr, Val, List).