Knights and Knaves 2 Puzzle - Solution

The Puzzle:

Knights and Knaves 2
There are three people (Alex, Brook and Cody), one of whom is a knight, one a knave, and one a spy.

The knight always tells the truth, the knave always lies, and the spy can either lie or tell the truth.

They are brought before a judge who wants to identify the spy.

Alex says: "I am not a spy."
Brook says: "I am a spy."
Now Cody is in fact the spy. The judge asks him: "Is Brook really a spy?"

Can Cody give an answer so that he doesn't convict himself as a spy?

Our Solution:

Cody should answer "No".

Brook is either a knave or a spy. If Brook is a spy, then Alex is truthful and is therefore the knight.

Alex is a Knight
Brook is a Spy
Cody is a Knave

On the other hand, if Brook is the knave, there are two possibilities:

Alex is a Spy
Brook is a Knave
Cody is a Knight

or

Alex is a Knight
Brook is a Knave
Cody is a Spy

If Cody is either the knave or the knight, his answer to the question will be "No", and so the judge will not be able to draw a conclusion. On the other hand, Cody can answer "Yes" only if he is the spy.
See this puzzle without solution
Discuss this puzzle at the Math is Fun Forum