A, B and C are one knight (always tells truth), one knave (always lies) and one spy (can lie or tell the truth).
A says "B is a spy"
C says "A is a knave"
B says "you have heard enough to identify the knight"
Who is who?
Who is who. I've tried finding contradictions, but can't find enough. For example, I can tell that Both A and C can't be telling the truth.
Could anyone help me go all the way?
Well, let's run through the possibilities.
Case 1: A knight
In this case, B is a spy and C is a knave.
Case 2: A knave
In this case, B is not a spy, and thus a knight.
Case 3: A spy
In this case, C is a knave, and B is a knight.
Thus, the knight is either A or B.
Now let's think about B's statement. Case 1 is a valid possibility, and so is Case 2 (ignoring B's statement). Thus, we can't determine the knight without B's statement, and thus, B is not telling the truth.
Thus, A is the knight, B is the spy, and C the knave.