Sudoku Solver uses only pure binary logic to solve Sudoku puzzles. It is written in JavaScript with a slight assembly flavour; linear processing. No guesses are made so if the puzzle cannot be solved with the methods available, the puzzle will remain incomplete or faulty, in a worst case scenario.
Aside from the standard Unique To Row, Column and Section (block) analysis, it checks for 'singletons', hidden and locked pairs, line or section ownership, x-wing, swordfish, and naked sets.
Each check is completely binary oriented; treating a line as one string of 9 bits. The common theme for each check is: data collection, validation, data storage. Collection and storage both involve simple binary manipulation.
At no time is the current state of the board examined; only a record of where each number cannot be placed is kept. Unlike other Sudoku systems which feature removing listed candidates from cells as they are discovered to be invalid for that cell, this binary logic system, and my own preferred method, marks a game board with invalid numbers for each cell. Rather than laboriously add all potential candidates to every cell followed by systematic removal, it is much easier to add numbers until one is missing.