I've previous stated that the correct way to handle this is to always determine the "range" on a digit by digit basis - and'ing the peers of each cell containing that digit within a pattern to fully assess the "range" of operation. As an example, suppose a pattern contains a digit that is confined to a single cell. Then for that digit, the range of operation includes all 20 potential peers within the same row/col/box. Similarly, any 2 cell digit that is confined to a dual-sector line/box intersection has a range of operation extending to the remaining 7 box and 6 line (row or col) or 13 potential peers. This happens frequently.
As a comparison, I ran all 4 above puzzle presentations though my experimental C++ SE replacement and all 4 rated identically at 4.6/2.0/2.0 and presented identical solution paths (which they should!):
- Code: Select all
1..........21..3...3..4..2..4.3.5.....5.2.6.....6...7..2..7..8...3..89..........4
1 56789 46789 |25789 35689 23679 |4578 4569 56789
456789 56789 2 |1 5689 679 |3 4569 56789
56789 3 6789 |5789 4 679 |1578 2 156789
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
26789 4 16789 |3 189 5 |128 19 1289
3789 1789 5 |4789 2 1479 |6 1349 1389
2389 189 189 |6 189 149 |12458 7 123589
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
4569 2 1469 |459 7 13469 |15 8 1356
4567 1567 3 |245 156 8 |9 156 12567
56789 156789 16789 |259 13569 12369 |1257 1356 4
1) r6c1 <= 2 direct hidden pair r4c13.<67>
2) r5c1 <= 3 hidden single in b4
3) r6c9 <= 3 hidden single in b6
4) r6c7 <= 5 hidden single in b6
5) r5c8 <= 4 hidden single in b6
6) r1c7 <= 4 hidden single in b3
7) r2c1 <= 4 hidden single in b1
8) r6c6 <= 4 hidden single in b5
9) r7c3 <= 4 hidden single in b7
10) r8c4 <= 4 hidden single in b8
11) r9c8 <= 3 hidden single in b9
12) r7c6 <= 3 hidden single in b8
13) r1c5 <= 3 hidden single in b2
14) r8c9 <= 2 hidden single in r8
15) r4c7 <= 2 hidden single in b6
16) r9c7 <= 7 hidden single in b9
17) r3c7 <= 8 hidden single in c7
18) r7c7 <= 1 full house in c7
19) r3c9 <= 1 hidden single in b3
20) r4c8 <= 1 hidden single in b6
21) r9c1 <= 8 direct hidden pair r4c13.<67>
22) r5c2 <> 7 locked candidates type 1 (pointing) b5/r5
23) r1c9 <> 9 locked candidates type 1 (pointing) b6/c9
24) r2c9 <> 9 locked candidates type 1 (pointing) b6/c9
25) r4c1 <> 9 naked pair r4c59.<89>
26) r4c3 <> 89 naked pair r4c59.<89>
27) r6c3 <> 1 ur[6]-loop type 2 <89> r4c5 r6c5 r6c2 r5c2 r5c9 r4c9
28) r9c3 <= 1 hidden single in c3
29) r8c5 <= 1 hidden single in b8
30) r5c6 <= 1 hidden single in b5
31) r6c2 <= 1 hidden single in b4
32) r5c4 <= 7 hidden single in b5
33) r1c4 <= 8 hidden single in c4
34) r2c2 <= 8 hidden single in b1
35) r1c6 <= 2 hidden single in b2
36) r6c3 <= 8 hidden single in b4
37) r6c5 <= 9 full house in r6
38) r4c5 <= 8 full house in b5
39) r5c2 <= 9 hidden single in b4
40) r5c9 <= 8 full house in r5
41) r4c9 <= 9 full house in b6
42) r7c1 <= 9 hidden single in b7
43) r9c4 <= 2 hidden single in b8
44) r9c6 <= 9 hidden single in b8
45) r3c4 <= 9 hidden single in b2
46) r7c4 <= 5 full house in c4
47) r7c9 <= 6 full house in r7
48) r9c5 <= 6 full house in b8
49) r2c5 <= 5 full house in c5
50) r9c2 <= 5 full house in r9
51) r8c8 <= 5 full house in b9
52) r3c1 <= 5 hidden single in b1
53) r1c3 <= 9 hidden single in b1
54) r1c9 <= 5 hidden single in b3
55) r2c9 <= 7 full house in c9
56) r3c6 <= 7 hidden single in b2
57) r2c6 <= 6 full house in b2
58) r2c8 <= 9 full house in r2
59) r3c3 <= 6 full house in r3
60) r1c2 <= 7 full house in b1
61) r1c8 <= 6 full house in r1
62) r8c2 <= 6 full house in c2
63) r4c3 <= 7 full house in c3
64) r4c1 <= 6 full house in r4
65) r8c1 <= 7 full house in c1
179832465482156397536947821647385219395721648218694573924573186763418952851269734 1 4.6 2.0 2.0 0.4327ms
1..........34..2...2..5..3..1.3.6.....4.2.7.....5...8..3..6..9...2..78..........4
1 456789 56789 |26789 3789 2389 |4569 4567 56789
56789 56789 3 |4 1789 189 |2 1567 156789
46789 2 6789 |16789 5 189 |1469 3 16789
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
25789 1 5789 |3 4789 6 |459 245 259
35689 5689 4 |189 2 189 |7 156 13569
23679 679 679 |5 1479 149 |13469 8 12369
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
4578 3 1578 |128 6 12458 |15 9 1257
4569 4569 2 |19 1349 7 |8 156 1356
56789 56789 156789 |1289 1389 123589 |1356 12567 4
1) r1c6 <= 2 direct hidden pair r13c4.<67>
2) r1c5 <= 3 hidden single in b2
3) r9c6 <= 3 hidden single in b8
4) r7c6 <= 5 hidden single in b8
5) r8c5 <= 4 hidden single in b8
6) r6c6 <= 4 hidden single in b5
7) r7c1 <= 4 hidden single in b7
8) r1c2 <= 4 hidden single in b1
9) r3c7 <= 4 hidden single in b3
10) r4c8 <= 4 hidden single in b6
11) r8c9 <= 3 hidden single in b9
12) r6c7 <= 3 hidden single in b6
13) r5c1 <= 3 hidden single in b4
14) r9c8 <= 2 hidden single in c8
15) r7c4 <= 2 hidden single in b8
16) r7c9 <= 7 hidden single in b9
17) r7c3 <= 8 hidden single in r7
18) r7c7 <= 1 full house in r7
19) r9c3 <= 1 hidden single in b7
20) r8c4 <= 1 hidden single in b8
21) r1c9 <= 8 direct hidden pair r13c4.<67>
22) r2c5 <> 7 locked candidates type 1 (pointing) b5/c5
23) r9c1 <> 9 locked candidates type 1 (pointing) b8/r9
24) r9c2 <> 9 locked candidates type 1 (pointing) b8/r9
25) r1c4 <> 9 naked pair r59c4.<89>
26) r3c4 <> 89 naked pair r59c4.<89>
27) r3c6 <> 1 ur[6]-loop type 2 <89> r5c4 r5c6 r2c6 r2c5 r9c5 r9c4
28) r3c9 <= 1 hidden single in r3
29) r5c8 <= 1 hidden single in b6
30) r6c5 <= 1 hidden single in b5
31) r2c6 <= 1 hidden single in b2
32) r4c5 <= 7 hidden single in b5
33) r4c1 <= 8 hidden single in r4
34) r2c2 <= 8 hidden single in b1
35) r3c6 <= 8 hidden single in b2
36) r5c6 <= 9 full house in c6
37) r5c4 <= 8 full house in b5
38) r2c5 <= 9 hidden single in b2
39) r9c5 <= 8 full house in c5
40) r9c4 <= 9 full house in b8
41) r1c7 <= 9 hidden single in b3
42) r6c1 <= 2 hidden single in b4
43) r4c9 <= 2 hidden single in b6
44) r6c9 <= 9 hidden single in b6
45) r4c3 <= 9 hidden single in b4
46) r4c7 <= 5 full house in r4
47) r5c9 <= 6 full house in b6
48) r5c2 <= 5 full house in r5
49) r9c7 <= 6 full house in c7
50) r2c9 <= 5 full house in c9
51) r8c8 <= 5 full house in b9
52) r1c3 <= 5 hidden single in b1
53) r3c1 <= 9 hidden single in b1
54) r9c1 <= 5 hidden single in b7
55) r9c2 <= 7 full house in r9
56) r6c3 <= 7 hidden single in b4
57) r3c3 <= 6 full house in c3
58) r2c1 <= 7 full house in b1
59) r8c1 <= 6 full house in c1
60) r2c8 <= 6 full house in r2
61) r3c4 <= 7 full house in r3
62) r1c4 <= 6 full house in b2
63) r1c8 <= 7 full house in r1
64) r6c2 <= 6 full house in b4
65) r8c2 <= 9 full house in c2
145632978783491265926758431819376542354829716267514389438265197692147853571983624 2 4.6 2.0 2.0 0.3871ms
.8..9.3.....4.......7..8.2...4..2.3.........11...3.2..35.....4...2.6.5..6....7...
245 8 156 |12567 9 156 |3 1567 4567
259 12369 13569 |4 1257 1356 |16789 156789 56789
459 13469 7 |1356 15 8 |1469 2 4569
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
5789 679 4 |156789 1578 2 |6789 3 56789
25789 23679 35689 |56789 4578 4569 |46789 56789 1
1 679 5689 |56789 3 4569 |2 56789 456789
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
3 5 189 |1289 128 19 |16789 4 26789
4789 1479 2 |1389 6 1349 |5 1789 3789
6 149 189 |123589 12458 7 |189 189 2389
1) r9c9 <= 2 direct hidden pair r7c79.<67>
2) r8c9 <= 3 hidden single in b9
3) r9c4 <= 3 hidden single in b8
4) r2c6 <= 3 hidden single in b2
5) r3c2 <= 3 hidden single in b1
6) r5c3 <= 3 hidden single in b4
7) r9c5 <= 5 hidden single in b8
8) r8c6 <= 4 hidden single in b8
9) r5c5 <= 4 hidden single in b5
10) r6c9 <= 4 hidden single in b6
11) r3c7 <= 4 hidden single in b3
12) r1c1 <= 4 hidden single in b1
13) r9c2 <= 4 hidden single in b7
14) r1c4 <= 2 hidden single in r1
15) r2c5 <= 7 hidden single in b2
16) r7c5 <= 2 hidden single in b8
17) r4c5 <= 8 hidden single in c5
18) r3c5 <= 1 full house in c5
19) r4c4 <= 1 hidden single in b5
20) r7c6 <= 1 hidden single in b8
21) r2c9 <= 8 direct hidden pair r7c79.<67>
22) r8c8 <> 7 locked candidates type 1 (pointing) b7/r8
23) r5c4 <> 9 locked candidates type 1 (pointing) b8/c4
24) r6c4 <> 9 locked candidates type 1 (pointing) b8/c4
25) r7c7 <> 89 naked pair r7c34.<89>
26) r7c9 <> 9 naked pair r7c34.<89>
27) r9c7 <> 1 ur[6]-loop type 2 <89> r7c3 r9c3 r9c8 r8c8 r8c4 r7c4
28) r2c7 <= 1 hidden single in c7
29) r1c3 <= 1 hidden single in b1
30) r8c2 <= 1 hidden single in b7
31) r8c1 <= 7 hidden single in b7
32) r9c8 <= 1 hidden single in b9
33) r5c1 <= 8 hidden single in c1
34) r5c2 <= 2 hidden single in b4
35) r2c1 <= 2 hidden single in b1
36) r6c8 <= 8 hidden single in b6
37) r9c7 <= 8 hidden single in b9
38) r9c3 <= 9 full house in r9
39) r7c3 <= 8 full house in b7
40) r8c4 <= 8 hidden single in b8
41) r8c8 <= 9 full house in r8
42) r7c4 <= 9 full house in b8
43) r3c9 <= 9 hidden single in b3
44) r2c2 <= 9 hidden single in b1
45) r2c3 <= 6 hidden single in b1
46) r3c1 <= 5 full house in b1
47) r4c1 <= 9 full house in c1
48) r2c8 <= 5 full house in r2
49) r3c4 <= 6 full house in r3
50) r1c6 <= 5 full house in b2
51) r6c3 <= 5 full house in c3
52) r5c4 <= 5 hidden single in b5
53) r6c4 <= 7 full house in c4
54) r4c2 <= 7 hidden single in b4
55) r6c2 <= 6 full house in c2
56) r6c6 <= 9 full house in r6
57) r5c6 <= 6 full house in b5
58) r4c9 <= 5 hidden single in b6
59) r4c7 <= 6 full house in r4
60) r5c7 <= 9 hidden single in b6
61) r5c8 <= 7 full house in r5
62) r7c7 <= 7 full house in c7
63) r7c9 <= 6 full house in r7
64) r1c8 <= 6 full house in c8
65) r1c9 <= 7 full house in r1
481295367296473158537618429974182635823546971165739284358921746712864593649357812 3 4.6 2.0 2.0 0.3922ms
100050700050100006000007000200010040006000000040500003000600190800090005030000800
1 2689 23489 |23489 5 234689 |7 238 2489
3479 5 234789 |1 2348 23489 |2349 238 6
3469 2689 23489 |23489 23468 7 |23459 12358 12489
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
2 789 35789 |3789 1 3689 |569 4 789
3579 1789 6 |234789 23478 23489 |259 12578 12789
79 4 1789 |5 2678 2689 |269 12678 3
--------- --------- ---------+--------- --------- ---------+--------- --------- ---------
457 27 2457 |6 23478 23458 |1 9 247
8 1267 1247 |2347 9 1234 |2346 2367 5
45679 3 124579 |247 247 1245 |8 267 247
1) r9c6 <= 5 direct hidden pair r7c56.<38>
2) r8c6 <= 1 hidden single in b8
3) r9c3 <= 1 hidden single in b7
4) r5c2 <= 1 hidden single in b4
5) r6c8 <= 1 hidden single in b6
6) r3c9 <= 1 hidden single in b3
7) r9c1 <= 9 hidden single in b7
8) r8c2 <= 6 hidden single in b7
9) r3c1 <= 6 hidden single in b1
10) r1c6 <= 6 hidden single in b2
11) r6c5 <= 6 hidden single in b5
12) r4c7 <= 6 hidden single in b6
13) r9c8 <= 6 hidden single in b9
14) r4c3 <= 5 hidden single in r4
15) r5c1 <= 3 hidden single in b4
16) r7c1 <= 5 hidden single in b7
17) r2c1 <= 4 hidden single in c1
18) r6c1 <= 7 full house in c1
19) r2c3 <= 7 hidden single in b1
20) r7c2 <= 7 hidden single in b7
21) r5c6 <= 4 direct hidden pair r7c56.<38>
22) r1c3 <> 2 locked candidates type 1 (pointing) b7/c3
23) r3c3 <> 2 locked candidates type 1 (pointing) b7/c3
24) r8c4 <> 3 locked candidates type 1 (pointing) b9/r8
25) r7c5 <> 24 naked pair r7c39.<24>
26) r7c6 <> 2 naked pair r7c39.<24>
27) r9c5 <> 7 ur[6]-loop type 2 <24> r7c9 r9c9 r9c4 r8c4 r8c3 r7c3
28) r5c5 <= 7 hidden single in c5
29) r4c9 <= 7 hidden single in b6
30) r8c8 <= 7 hidden single in b9
31) r9c4 <= 7 hidden single in b8
32) r8c7 <= 3 hidden single in b9
33) r3c7 <= 4 hidden single in c7
34) r1c4 <= 4 hidden single in b2
35) r3c8 <= 5 hidden single in b3
36) r5c7 <= 5 hidden single in b6
37) r9c5 <= 4 hidden single in b8
38) r9c9 <= 2 full house in r9
39) r7c9 <= 4 full house in b9
40) r8c3 <= 4 hidden single in b7
41) r7c3 <= 2 full house in b7
42) r8c4 <= 2 full house in r8
43) r6c6 <= 2 hidden single in b5
44) r5c8 <= 2 hidden single in b6
45) r2c7 <= 2 hidden single in b3
46) r6c7 <= 9 full house in c7
47) r6c3 <= 8 full house in r6
48) r4c2 <= 9 full house in b4
49) r5c9 <= 8 full house in b6
50) r5c4 <= 9 full house in r5
51) r1c9 <= 9 full house in c9
52) r3c3 <= 9 hidden single in b1
53) r1c3 <= 3 full house in c3
54) r3c5 <= 2 hidden single in b2
55) r1c2 <= 2 hidden single in b1
56) r1c8 <= 8 full house in r1
57) r3c2 <= 8 full house in b1
58) r3c4 <= 3 full house in r3
59) r2c8 <= 3 full house in b3
60) r4c4 <= 8 full house in c4
61) r4c6 <= 3 full house in r4
62) r2c6 <= 9 hidden single in b2
63) r2c5 <= 8 full house in r2
64) r7c5 <= 3 full house in c5
65) r7c6 <= 8 full house in c6
123456789457189236689327451295813647316974528748562913572638194864291375931745862 4 4.6 2.0 2.0 0.3725ms
I'm not familiar enough with Glen's gsf sudoku program to know the options, but I believe it can generate transpositions??? If anyone has a collection with multiples, I would like to have that for additional testing to ensure that my experimental replacement code is not sensitive to transposition scoring. So far, I don't think it is, but I have yet to test the higher level chaining logic.
Cheers,
Paul