Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
:-use_module(library(clpfd)). % score/3 has mode ++- and maps % a given answer and a correct answer -> a score. score(Given, Correct, Score) :- zcompare(Order, Given, Correct), score_(Order, Score). score_(=, 10). % assume 10 points for an answer score_(<, 0). % matching the correct answer, score_(>, 0). % else 0 points. puzzle(ColinTotal, ColinScores, CorrectAnswers) :- A=0, % false B=1, % true length(CorrectAnswers, 10), % ten unknown correct answers, CorrectAnswers ins 0..1, % all either true or false. % compare player answers to correct answers, add their scores. maplist(score, [B,B,A,B,A,B,B,A,B,B], CorrectAnswers, Mary), sum(Mary, #=, 70), maplist(score, [B,A,A,A,B,A,B,A,A,A], CorrectAnswers, Dan), sum(Dan, #=, 50), maplist(score, [B,A,A,A,B,B,B,A,B,A], CorrectAnswers, Lisa), sum(Lisa, #=, 30), maplist(score, [B,B,A,A,A,B,B,A,A,A], CorrectAnswers, ColinScores), sum(ColinScores, #=, ColinTotal). /** <examples> Your example queries go here, e.g. ?- puzzle(ColinTotal, ColinScores, CorrectAnswers). **/