I have checked both your given puzzles with my routine and it catches Naked pair and triple as mentioned in your post respectively.
Also googling and found one more example of Hidden quad, my routine detect the same:
- Code: Select all
005407810000102700001056002107000408402001009806000201600010000013908000004703100
However as per this site's first hidden quad example, my routine is unable to detect hidden quad:
- Code: Select all
650087024000649050040025000570438061000501000310902085000890010000213000130750098
I have included step-by-step debugging for solving technics in to my Bitwise Sudoku solver program. Here is the output of above mentioned puzzle:
- Code: Select all
650087024000649050040025000570438061000501000310902085000890010000213000130750098
31) Found Naked pair 73 at unit 20 at Cell 17 25
1) Trial and Error from least digits 31 at Cell 3
0) Apply Digit 1 from 31 at Cell 3
2) Found Naked Single 9 at Cell 6
1) Apply Digit 9 from 9 at Cell 6
2) Found Naked Single 3 at Cell 2
2) Apply Digit 3 from 3 at Cell 2
10) Found Naked Single 3 at Cell 21
3) Apply Digit 3 from 3 at Cell 21
12) Found Naked Single 7 at Cell 25
4) Apply Digit 7 from 7 at Cell 25
7) Found Naked Single 3 at Cell 17
5) Apply Digit 3 from 3 at Cell 17
13) Found Naked Single 6 at Cell 26
6) Apply Digit 6 from 6 at Cell 26
15) Found Naked Single 2 at Cell 33
7) Apply Digit 2 from 2 at Cell 33
14) Found Naked Single 9 at Cell 29
8) Apply Digit 9 from 9 at Cell 29
36) Found Naked Single 4 at Cell 70
9) Apply Digit 4 from 4 at Cell 70
21) Found Naked Single 3 at Cell 43
10) Apply Digit 3 from 3 at Cell 43
37) Found Naked Single 7 at Cell 71
11) Apply Digit 7 from 7 at Cell 71
22) Found Naked Single 9 at Cell 44
12) Apply Digit 9 from 9 at Cell 44
31) Found Naked Single 2 at Cell 62
13) Apply Digit 2 from 2 at Cell 62
27) Found Naked Single 6 at Cell 55
14) Apply Digit 6 from 6 at Cell 55
29) Found Naked Single 4 at Cell 59
15) Apply Digit 4 from 4 at Cell 59
26) Found Naked Single 7 at Cell 54
16) Apply Digit 7 from 7 at Cell 54
28) Found Naked Single 5 at Cell 56
17) Apply Digit 5 from 5 at Cell 56
30) Found Naked Single 3 at Cell 60
18) Apply Digit 3 from 3 at Cell 60
34) Found Naked Single 8 at Cell 65
19) Apply Digit 8 from 8 at Cell 65
32) Found Naked Single 9 at Cell 63
20) Apply Digit 9 from 9 at Cell 63
20) Rollback Digit 9 from 0 at Cell 63
19) Rollback Digit 8 from 0 at Cell 65
18) Rollback Digit 3 from 0 at Cell 60
17) Rollback Digit 5 from 0 at Cell 56
16) Rollback Digit 7 from 0 at Cell 54
15) Rollback Digit 4 from 0 at Cell 59
14) Rollback Digit 6 from 0 at Cell 55
13) Rollback Digit 2 from 0 at Cell 62
12) Rollback Digit 9 from 0 at Cell 44
11) Rollback Digit 7 from 0 at Cell 71
10) Rollback Digit 3 from 0 at Cell 43
9) Rollback Digit 4 from 0 at Cell 70
8) Rollback Digit 9 from 0 at Cell 29
7) Rollback Digit 2 from 0 at Cell 33
6) Rollback Digit 6 from 0 at Cell 26
5) Rollback Digit 3 from 0 at Cell 17
4) Rollback Digit 7 from 0 at Cell 25
3) Rollback Digit 3 from 0 at Cell 21
2) Rollback Digit 3 from 0 at Cell 2
1) Rollback Digit 9 from 0 at Cell 6
0) Rollback Digit 1 from 0 at Cell 3
0) Apply Digit 3 from 31 at Cell 3
3) Found Naked Single 1 at Cell 21
1) Apply Digit 1 from 1 at Cell 21
2) Trial and Error from least digits 91 at Cell 2
2) Apply Digit 1 from 91 at Cell 2
3) Found Naked Single 9 at Cell 6
3) Apply Digit 9 from 9 at Cell 6
6) Found Naked Single 6 at Cell 26
4) Apply Digit 6 from 6 at Cell 26
7) Found Naked Single 2 at Cell 33
5) Apply Digit 2 from 2 at Cell 33
8) Found Naked Single 9 at Cell 29
6) Apply Digit 9 from 9 at Cell 29
11) Found Naked Single 7 at Cell 71
7) Apply Digit 7 from 7 at Cell 71
9) Found Naked Single 4 at Cell 70
8) Apply Digit 4 from 4 at Cell 70
11) Found Naked Single 3 at Cell 17
9) Apply Digit 3 from 3 at Cell 17
11) Found Naked Single 7 at Cell 25
10) Apply Digit 7 from 7 at Cell 25
11) Found Naked Single 3 at Cell 43
11) Apply Digit 3 from 3 at Cell 43
12) Found Naked Single 9 at Cell 44
12) Apply Digit 9 from 9 at Cell 44
13) Found Naked Single 2 at Cell 62
13) Apply Digit 2 from 2 at Cell 62
14) Found Naked Single 6 at Cell 55
14) Apply Digit 6 from 6 at Cell 55
15) Found Naked Single 4 at Cell 59
15) Apply Digit 4 from 4 at Cell 59
16) Found Naked Single 7 at Cell 54
16) Apply Digit 7 from 7 at Cell 54
17) Found Naked Single 5 at Cell 56
17) Apply Digit 5 from 5 at Cell 56
18) Found Naked Single 3 at Cell 60
18) Apply Digit 3 from 3 at Cell 60
19) Found Naked Single 8 at Cell 65
19) Apply Digit 8 from 8 at Cell 65
20) Found Naked Single 9 at Cell 63
20) Apply Digit 9 from 9 at Cell 63
20) Rollback Digit 9 from 0 at Cell 63
19) Rollback Digit 8 from 0 at Cell 65
18) Rollback Digit 3 from 0 at Cell 60
17) Rollback Digit 5 from 0 at Cell 56
16) Rollback Digit 7 from 0 at Cell 54
15) Rollback Digit 4 from 0 at Cell 59
14) Rollback Digit 6 from 0 at Cell 55
13) Rollback Digit 2 from 0 at Cell 62
12) Rollback Digit 9 from 0 at Cell 44
11) Rollback Digit 3 from 0 at Cell 43
10) Rollback Digit 7 from 0 at Cell 25
9) Rollback Digit 3 from 0 at Cell 17
8) Rollback Digit 4 from 0 at Cell 70
7) Rollback Digit 7 from 0 at Cell 71
6) Rollback Digit 9 from 0 at Cell 29
5) Rollback Digit 2 from 0 at Cell 33
4) Rollback Digit 6 from 0 at Cell 26
3) Rollback Digit 9 from 0 at Cell 6
2) Rollback Digit 1 from 0 at Cell 2
2) Apply Digit 9 from 91 at Cell 2
3) Found Naked Single 1 at Cell 6
3) Apply Digit 1 from 1 at Cell 6
6) Found Naked Single 2 at Cell 29
4) Apply Digit 2 from 2 at Cell 29
5) Found Naked Single 9 at Cell 33
5) Apply Digit 9 from 9 at Cell 33
31) Found Naked Single 8 at Cell 15
6) Apply Digit 8 from 8 at Cell 15
22) Found Naked Single 2 at Cell 10
7) Apply Digit 2 from 2 at Cell 10
14) Found Naked Single 6 at Cell 55
8) Apply Digit 6 from 6 at Cell 55
15) Found Naked Single 4 at Cell 59
9) Apply Digit 4 from 4 at Cell 59
21) Found Naked Single 7 at Cell 9
10) Apply Digit 7 from 7 at Cell 9
15) Found Naked Single 3 at Cell 17
11) Apply Digit 3 from 3 at Cell 17
16) Found Naked Single 2 at Cell 54
12) Apply Digit 2 from 2 at Cell 54
13) Found Naked Single 7 at Cell 62
13) Apply Digit 7 from 7 at Cell 62
14) Found Naked Single 4 at Cell 70
14) Apply Digit 4 from 4 at Cell 70
16) Found Naked Single 2 at Cell 44
15) Apply Digit 2 from 2 at Cell 44
17) Found Naked Single 5 at Cell 56
16) Apply Digit 5 from 5 at Cell 56
18) Found Naked Single 3 at Cell 60
17) Apply Digit 3 from 3 at Cell 60
21) Found Naked Single 7 at Cell 25
18) Apply Digit 7 from 7 at Cell 25
21) Found Naked Single 3 at Cell 43
19) Apply Digit 3 from 3 at Cell 43
22) Found Naked Single 6 at Cell 71
20) Apply Digit 6 from 6 at Cell 71
27) Found Naked Single 8 at Cell 18
21) Apply Digit 8 from 8 at Cell 18
22) Found Naked Single 9 at Cell 63
22) Apply Digit 9 from 9 at Cell 63
26) Found Naked Single 4 at Cell 36
23) Apply Digit 4 from 4 at Cell 36
26) Found Naked Single 6 at Cell 47
24) Apply Digit 6 from 6 at Cell 47
26) Found Naked Single 7 at Cell 49
25) Apply Digit 7 from 7 at Cell 49
26) Found Naked Single 4 at Cell 51
26) Apply Digit 4 from 4 at Cell 51
29) Found Naked Single 1 at Cell 11
27) Apply Digit 1 from 1 at Cell 11
30) Found Naked Single 8 at Cell 38
28) Apply Digit 8 from 8 at Cell 38
29) Found Naked Single 7 at Cell 65
29) Apply Digit 7 from 7 at Cell 65
30) Found Naked Single 9 at Cell 37
30) Apply Digit 9 from 9 at Cell 37
31) Found Naked Single 9 at Cell 26
31) Apply Digit 9 from 9 at Cell 26
32) Found Naked Single 7 at Cell 42
32) Apply Digit 7 from 7 at Cell 42
33) Found Naked Single 8 at Cell 64
33) Apply Digit 8 from 8 at Cell 64
34) Found Naked Single 6 at Cell 40
34) Apply Digit 6 from 6 at Cell 40
35) Found Naked Single 5 at Cell 69
35) Apply Digit 5 from 5 at Cell 69
36) Found Naked Single 3 at Cell 20
36) Apply Digit 3 from 3 at Cell 20
37) Found Naked Single 6 at Cell 24
37) Apply Digit 6 from 6 at Cell 24
38) Found Naked Single 4 at Cell 74
38) Apply Digit 4 from 4 at Cell 74
39) Found Naked Single 6 at Cell 77
39) Apply Digit 6 from 6 at Cell 77
40) Found Naked Single 2 at Cell 78
40) Apply Digit 2 from 2 at Cell 78
6) 659387124721649853843125679572438961498561732316972485265894317987213546134756298 # S6 # N40 # H0 # 0.000000
R. Jamil