Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
% prisoner(i,Nb) means i-th prisoner is assigned Nb prisoner(0,0). prisoner(1,6). prisoner(2,1). prisoner(3,4). prisoner(4,1). prisoner(5,8). prisoner(6,7). prisoner(7,2). prisoner(8,6). prisoner(9,4). % gets the list of all other Numbers prisonerList(Prisoner, List) :- findall(N,prisoner(_,N),ListN), prisoner(Prisoner,NP), select(NP,ListN,List). % gets the sum of this list prisonerSum(Prisoner,Sum) :- prisonerList(Prisoner,List), sum_list(List,Sum). % gets the number the i-th prisoner has to guess prisonerGuess(Prisoner,Guess) :- prisonerSum(Prisoner,Sum), Guess is 10 - ((Prisoner + Sum) mod 10). % gets the prisoner who guesses right! prisonerRight(Prisoner) :- prisonerGuess(Prisoner,Guess), prisoner(Prisoner,Guess),!. /** <examples> ?- prisonerRight(P). */