===== MisterMind: a tool for fact-based reasoning ===== This tool is to help excercise fact-based reasoning. It is based on [[https://en.wikipedia.org/wiki/Mastermind_(board_game)| Mastermind]] but instead of being an interactive game, all of the information is statically given at once as a puzzle. Each puzzle has at least one solution but may have more. [[https://jimmorey.com/js/master.html?slots=3&choices=4| a 3 slot version with 4 colours]] {{::screenshot_2021-05-20_07.58.52.png|}} 1 & 2 imply no y (together there can be no correct place for y since there are no black in the score). Further, the third peg is b (similar reasoning). 3 implies the middle peg is o and there is only 1 o (since the other is b is the white in the score). Finally, the first peg must be r, the unused color {{::screenshot_2021-05-20_09.14.00.png|}} Here's another example with the interface: {{:screenshot_2021-05-12_16.10.16.png?200|}} {{:screenshot_2021-05-12_16.11.01.png?500|}} The example above shows a puzzle with three slots and 4 colours. The numbered facts and the lettered colours are used to help articulate the reasons for suggesting solutions. Once the empty slots and comments have been filled in so that the puzzle is solved, the solution can be revealed and the solution suggestions can be verified with the facts. Below shows an example of incorrect solutions for the puzzles. Each fact that contradicts the suggestion is written beside it in red with its associated number with a line through it. {{:screenshot_2021-05-12_16.22.18.png?200|}} {{:screenshot_2021-05-12_16.22.55.png?400|}} some arguments to add to [[https://jimmorey.com/js/master.html]] * noletters (ex with [[https://jimmorey.com/js/master.html?noletters| only colours]]) * fav only works with 4 slots and 6 choices(ex with [[https://jimmorey.com/js/master.html?fav| a few good starter patterns]]) * choices=# (ex with [[https://jimmorey.com/js/master.html?choices=4| 4 colors colours]]) * slots=# (ex with [[https://jimmorey.com/js/master.html?slots=5| 5 slots]]) * blanks=# (ex with [[https://jimmorey.com/js/master.html?blanks=5| 5 blanks for scrap]]) The underlying coding is [[mistermind arrays|implemented with arrays]].