StrmCkr wrote:
asides from the normal RC,[ RN,CN,BN]* space
What's that?
i originally had a massive excel spreed sheet with a massive list of techniques where i mapped out each technique individually case by case and was able to solve ~60% of the top1465 list before i ran out of memory in the program and locked my self out of it via saving it. {found out i hit the 2.4 ~ Gig built in memory limit when i tried to reopen it}
{in essence i could drag and drop a grid into it and it would instantly produce the solution in zero time {based on if my solver had the key technique programed into it}
which was pretty epic,
however since then i re-taught my self some Free pascal and moved to coding never been able to replicate the above as all coded works has to cycle each technique one by one instead of all at the same time which is an advantage of excel.
when you are looking at filled in pencil marks you are looking at the summation of Rn,Cn,BN space so its not really something knew just a diffrent vantage point of the solving process by breaking it apart into respective space.
Grid: represents the puzzle as imported storing the Digit placed at each of the [1..81] cells
RC - represents every cell that is not solved [1..81]
RN - represents each row per digit that is active
CN - represents each col per digit that is active
BN - represents each box per digit that is active
to figure out if Cell 1 Pencils marks its sum [ R1N * B1N *C1N] {where N = 1..9) {ps i'm using
set-wise operations
stormdoku - my program}
this generates an easy view area that shows "naked" singles/sets {ie all other candidates are empty}
I use a variation for
naked sets:
RC- storing number set {row, col }
RBS - storing number set { box, square by row ->> left to right} }
CBS - storing number set { box, square by col ->> left to right} }
Hidden sets is a bit more difficult for computers but easier for humans as its the only cells left for digits to be in for a sector. {exactly the inverse of Rn,Cn,Bn: }
RD - Row ,represents each by Digit storing Col
CD - Row, represents each by Digit storing Row
BD - box, represent each Digit storing Square by row->> left to right}
BD - box , represent each Digit storing Square by col->> left to right}
For box/line reduction i use: {mini row/col} BSR - storing number sert {box, square @ Row }
BsC- Storing number-set {box, Square @ Col}
Empty Rectangle intersection { ERI } ERI: Cell storing number-set
defined as:
( RD * BD) + (CD * BD) = BD
where (RD or CD) <> box and box <> [empty]