In the puzzle for the first week of 2012, the second choice (9084) stated:
"If 1 is in the solution, then 7 cannot be in solution."
This was scored as correct and offered a step-by-step logical "proof" of why this was so.
Unfortunately, as several players pointed out, my logic was flawed from the very start - because 1 could not be in the solution at all. As Jennifer explained so clearly:
"We know from the clues that 1 cannot be in the solution. Based on the 3rd clue that only one of the set '2143' is in the solution, we know that 5,6, and 7 must be in the solution. Therefore 1 cannot be in the solution because the 2nd clue states that only 2 of '1456' is in the solution. We know that 5 and 6 must be so 1 and 4 cannot be."
I will change that choice to incorrect; everyone's scores will be updated within the next 24 hours.
While I am unhappy with my error and the need to issue a correction, I am delighted that several players analyzed the puzzle closely enough to uncover the problem - and also because this process reinforces what is to me one of the most important lessons for programmers when playing Mastermind (and similar games):
Make sure that you fully "mine" all "clues" (results from tests of your code) for all possible information.
All too often we (I!) barely look at the results of a test, or the report of a bug, before we rush to the source code and scramble (flail around?) to apply a fix. In doing so, we (I) often overlook critical information, and this oversight can lead to lots of time lost and even the introduction of new bugs.
In this puzzle, I did not perform enough analysis to conclude that 1 could not be in the solution. By missing this fact, I then introduced a mistake into the quiz.
Lesson learned: before you start messing around with your code, make sure you have extracted all possible conclusions from tests and specifications. Then apply that knowledge in a systematic fashion.
Thanks to Jennifer, DKennedy, Bobby and Pavel for identifying this problem!
Steven