Here is an excellent puzzle with 3 types of characters:
You are lost in a town and meet 3 men. You somehow (God told you) know that they are Knight, Knave and Joker. Knight always tells truth, Knave always tells the opposite to the truth, Joker randomly decides whether to tell truth or lie.
You need to find at least one person who can give you some information, but the problem is that you do not know who is who. Luckily the three knew amongst themselves who they are. So you need to find someone who is not a Joker. How do you do it asking one yes-or-no-question to one person only if you are not allowed to ask a man something he doesn't know or any question he cannot answer either "yes" or "no" to.
Since the problem seems to be impossible for a lot people (at least at the beginning) I am adding a lot of explanations to let you be sure that there is no trick:
- You cannot ask something like "How many friends do you have?". This is not a yes-or-no question.
- You cannot ask questions like "Will it rain tomorrow?". He doesn't know.
- You cannot ask arbitrary man "What would you answer if I ask you blablabla?", if it is the Joker he doesn't know this about his own answers.
- You cannot ask something like "Will you answer No to this question?". Truth-teller can't answer this question.
- You do not get any additional information (like by looking at behaviour, by lack of answer, or whatever is on your mind) and must decide who is not a Joker based on the answer ("yes" or "no") itself only.
- You cannot force them to do stuff. Even implicitly. So you cannot ask "Will your friend scream if you hit him next second?" and expect to get an answer. The answer is unknown at the moment you ask the question therefore you are asking a forbidden question.
- This puzzle is not about "how to find a way around the rules".