SudokuSolver Forum

A forum for Sudoku enthusiasts to share puzzles, techniques and software
It is currently Thu Apr 25, 2024 3:26 pm

All times are UTC




Post new topic Reply to topic  [ 92 posts ]  Go to page 1, 2, 3, 4, 5 ... 10  Next
Author Message
 Post subject: JSudoku
PostPosted: Sat May 03, 2008 1:47 pm 
Offline
Expert
Expert

Joined: Sun Apr 27, 2008 10:44 am
Posts: 102
Location: Belgium
Hi,

JSudoku is a Sudoku solver, helper and generator written in Java. It works fine under Windows, Mac OS X and should work equally fine under Linux.

The main focus in on Killer Sudoku, but it also support vanilla Sudoku and a bunch of other variants : Sudoku X (diagonal), JigSaw, Gatai (Samurai, Clueless), Even/Odd & the like, (non) consecutive, Greater/Less than... which may be all combined.

See : http://jcbonsai.free.fr/sudoku/?cat=7

Here is a screen shot, better than 1000 words ?

Image

I wrote a User guide

It’s free and for private use only.

Comments and suggestions are welcome.

I've just released a new version 1.3b1

Added Finned X-Wing, Swordfish, Jellyfish… solvers. Will also detect the sashimi case.
Added Skyscraper solver. It’s a particular case of a turbot fish which is easier to spot than other turbots, so I made it a separate solver. Note: it’s also a sashimi X-Wing.
Added Sue de Coq solver. It searches for “Two-Sector Disjoint Subsets”.
Added ALS-XZ solver. It searches for two Almost Locked Set with a restricted common (X) and an outer common (Z). It will remove Z from buddies of all cells with Z in the two ALS’s. Note: it will also catch WXYZ-Wings.
Added Uniqueness Test solvers for Unique Rectangles (UR) type 1 to 6 and Hidden Unique Rectangle. I will also search for Avoidable Rectangles type 1 to 3 (equivalent to UR with some solved cells)
Adapted Complex naked pair solver to detect naked pairs between ALS in UR type 3 and a sum cage. This is used only when Uniqueness Test 3 is enabled.
Adapted Conflicting combination solver to detect conflicts with Unique Rectangles. A cage covering all UR cells with extra possibilities cannot have both “deadly” possibilities. A cage which is a buddy of all UR cells with extra possibilities cannot have all extra possibilities. This is used only when Uniqueness Test 3 is enabled.
Added Cages Grouping solver. It checks combinations of two adjacent or overlapping cages together. This is last in the list since it does not give the logical reasons for the eliminations. So you’ll have to findout the logic yourself. Nevertheless, it could help spotting areas of interset, where eliminations can be made.
...

_________________
Jean-Christophe
"When you have eliminated the impossible, whatever remains, however improbable, must be the truth." Sherlock Holmes.


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sat May 03, 2008 8:26 pm 
Offline
Grand Master
Grand Master
User avatar

Joined: Mon Apr 21, 2008 10:32 am
Posts: 868
Many very nice improvements! :D Thanks a lot JC. ;clapclap; :applause:

Some nit-picking ;)

1) Under Windows I am unable to run 1.2b1 and 1.3b1 simultaneously on the same PC.
Would make it easier to set the sequence of solver techniques in 1.3b1 similar to to the sequence I use in 1.2b1.
EDIT:
VERY BAD: The first start of 1.3b1 seems to have ruined my settings of the sequence of solver techniques in 1.2b1!

2) Separate solvers for 2-String Kite and Remote Pairs would be nice.
AFAIK 2-String Kites are more common than Skyscrapers.

3) Row and column headers as we have discussed per PM; Please!

_________________
Quis custodiet ipsos custodes?
Normal: [D  Y-m-d,  G:i]     PM->email: [D, d M Y H:i:s]


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sat May 03, 2008 10:20 pm 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 6:23 am
Posts: 113
Location: Germany
Jean-Christophe wrote:
I've just released a new version 1.3b1

Wow, it can do the Assassin 50 V2! :shock: :salute:

Ruud wrote:
There is a V2 for Assassin 50, which could be one of the toughest killers I made so far.

However, before you all get too excited, here are the stats and the HUGE solver log (including a finned jellyfish found near the start!) in TT. It's clearly way off the scale of anything that can be reasonably posted on any forum without ending up on the "Unsolvables" list. :twisted:

JSudoku wrote:
Techniques used:
69 Naked Singles
12 Hidden Singles
4 Unique Pairs
2 Naked Pairs
1 Hidden Pairs
6 Intersections
13 Odd Pairs
12 Odd Triplets
8 Double Innies & Outies
18 Mandatory Inclusions
1 Odd Quads
8 Double Outies minus Innies
1 Complex Naked Pairs
4 Complex Hidden Pairs
47 Conflicting Pairs
12 Quadruple Innies & Outies
4 Triple Outies minus Innies
2 Odd Combinations
1 Pointing Triplets
3 Locked Cages
29 Conflicting Triplets
1 Finned Jellyfish
219 Conflicting Partial Pairs
24 Multiple Innies & Outies
14 Multiple Outies minus Innies
16 Complex XY-Chains up to 3 links
16 Cages Grouping

And now for the solver log, in all its glory...:
JSudoku wrote:
Cage 16/2 in R1C34 = {79} (Naked Pair in R1)
Cage 10/2 in R1C67 -> R1C7 = {2468}, R1C6 = {2468}
Innies of N1 -> R1C3+R3C1 = 15
Split cage 15/2 in R1C3+R3C1 -> R3C1 = {68}
Cage 11/2 in R34C1 -> R4C1 = {35}
Outies of N1 -> R1C4+R4C1 = 12
Innies of N7 -> R7C1+R9C3 = 15
Split cage 15/2 in R7C1+R9C3 -> R9C3 = {789}, R7C1 = {678}
Cage 10/2 in R67C1 -> R6C1 = {234}
Cage 12/2 in R9C34 -> R9C4 = {345}
Outies of N7 -> R6C1+R9C4 = 7
Innies of N3 -> R1C7+R3C9 = 10
Split cage 10/2 in R1C7+R3C9 -> R3C9 = {2468}
Cage 9/2 in R34C9 -> R4C9 = {1357}
Innies of N9 -> R7C9+R9C7 = 5
Split cage 5/2 in R7C9+R9C7 -> R7C9 = {1234}
Cage 9/2 in R67C9 -> R6C9 = {5678}
Outies of N3 -> R1C6+R4C9 = 9
Outies of N9 -> R6C9+R9C6 = 9
R1C4 must have at least 1 of {79} -> Cage 22/4 in R12C5+R2C46 may have at most 1 of {79}
R3C1 must have at least 1 of {68} -> Cage 18/4 in R23C23 may have at most 1 of {68}
R4C1 must have at least 1 of {35} -> Cage 23/4 in R456C2+R5C1 may have at most 1 of {35}
Split cage 15/2 in R1C3+R3C1 must have at least 1 of {67} -> Cage 18/4 in R23C23 may have at most 1 of {67}
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {67} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {67}
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {68} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {68}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {24} -> Cage 13/3 in R1C89+R2C9 may have at most 1 of {24}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {24} -> Cage 22/4 in R23C78 may have at most 1 of {24}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {26} -> Cage 13/3 in R1C89+R2C9 may have at most 1 of {26}
Cage 13/3 in R1C89+R2C9 -> R2C9 = {12346789}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {26} -> Cage 22/4 in R23C78 may have at most 1 of {26}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Cage 13/3 in R1C89+R2C9 may have at most 1 of {48}
Cage 13/3 in R1C89+R2C9 -> R2C9 = {2346789}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Cage 22/4 in R23C78 may have at most 1 of {48}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {68} -> Cage 22/4 in R23C78 may have at most 1 of {68}
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Cage 16/3 in R89C9+R9C8 may have at most 1 of {34}
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Cage 24/4 in R78C78 may have at most 1 of {34}
Outies of C12 -> R2378C3 = 14
Split cage 14/4 in R2378C3 -> R3C3 = {12345678}, R2C3 = {12345678}
Innies of C34 -> R258C4+R5C3 = 26
Complex cage 26/4 in R258C4+R5C3 -> R5C3 = {23456789}
Outies of R12 -> R3C2378 = 23
R3C1 must have at least 1 of {68} -> Split cage 23/4 in R3C2378 may have at most 1 of {68}
Innies of R12 -> R2C2378 = 17
Innies of R89 -> R8C2378 = 19
Outies of R89 -> R7C2378 = 19
Innies of C89 -> R2378C8 = 23
Outies of C89 -> R2378C7 = 23
Innies of C12 -> R2378C2 = 18
Innies of R67 -> R6C258+R7C5 = 23
Outies of C5 -> R258C6+R5C7 = 18
Outies of R5 -> R34C5+R4C28 = 20
Outies minus innies of R1 -> R2C19-R1C5 = 6
Outies minus innies of C9 -> R19C8-R5C9 = 2
Outies minus innies of C1 -> R19C2-R5C1 = 4
Outies minus innies of R9 -> R8C19-R9C5 = 4
Finned Jellyfish on 9 in R3467 and C2678 with fin in R3467C5 -> R5C67 <> 9
R1C3 must have at least 1 of {79} -> Split cage 23/4 in R3C2378 may have at most 1 of {79} within R3C23
R1C4 must have at least 1 of {79} -> Complex cage 26/4 in R258C4+R5C3 may have at most 1 of {79} within R258C4
Complex cage 26/4 in R258C4+R5C3 -> R5C3 = {3456789}
R3C1 must have at least 1 of {68} -> Complex cage 4/3 in R19C2-R5C1 may have at most 1 of {68} within R1C2, R5C1
R3C1 must have at least 1 of {68} -> Split cage 17/4 in R2C2378 may have at most 1 of {68} within R2C23
R3C1 must have at least 1 of {68} -> Split cage 18/4 in R2378C2 may have at most 1 of {68} within R23C2
R4C1 must have at least 1 of {35} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {35} within R89C1
R4C1 must have at least 1 of {35} -> Cage 12/3 in R1C12+R2C1 may have at most 1 of {35} within R12C1
R4C1 must have at least 1 of {35} -> Cage 16/3 in R34C6+R4C7 may have at most 1 of {35} within R4C67
R4C1 must have at least 1 of {35} -> Complex cage 20/4 in R34C5+R4C28 may have at most 1 of {35} within R4C258
Split cage 15/2 in R1C3+R3C1 must have at least 1 of {67} -> Split cage 23/4 in R3C2378 may have at most 1 of {67} within R3C23
Split cage 15/2 in R1C3+R3C1 must have at least 1 of {67} -> Split cage 17/4 in R2C2378 may have at most 1 of {67} within R2C23
Split cage 15/2 in R1C3+R3C1 must have at least 1 of {67} -> Split cage 18/4 in R2378C2 may have at most 1 of {67} within R23C2
Split cage 15/2 in R1C3+R3C1 must have at least 1 of {89} -> Split cage 23/4 in R3C2378 may have at most 1 of {89} within R3C23
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {67} -> Split cage 19/4 in R7C2378 may have at most 1 of {67} within R7C23
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {67} -> Split cage 19/4 in R8C2378 may have at most 1 of {67} within R8C23
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {67} -> Split cage 18/4 in R2378C2 may have at most 1 of {67} within R78C2
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {68} -> Split cage 19/4 in R7C2378 may have at most 1 of {68} within R7C23
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {68} -> Split cage 19/4 in R8C2378 may have at most 1 of {68} within R8C23
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {68} -> Split cage 18/4 in R2378C2 may have at most 1 of {68} within R78C2
Cage 5/2 in R9C67 must have at least 1 of {34} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {34} within R9C12
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {24} -> Split cage 17/4 in R2C2378 may have at most 1 of {24} within R2C78
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {24} -> Split cage 23/4 in R2378C7 may have at most 1 of {24} within R23C7
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {24} -> Split cage 23/4 in R2378C8 may have at most 1 of {24} within R23C8
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {26} -> Split cage 17/4 in R2C2378 may have at most 1 of {26} within R2C78
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {26} -> Split cage 23/4 in R2378C7 may have at most 1 of {26} within R23C7
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {26} -> Split cage 23/4 in R2378C8 may have at most 1 of {26} within R23C8
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Split cage 23/4 in R3C2378 may have at most 1 of {48} within R3C78
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Split cage 17/4 in R2C2378 may have at most 1 of {48} within R2C78
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Split cage 23/4 in R2378C7 may have at most 1 of {48} within R23C7
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Split cage 23/4 in R2378C8 may have at most 1 of {48} within R23C8
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {68} -> Split cage 17/4 in R2C2378 may have at most 1 of {68} within R2C78
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {68} -> Split cage 23/4 in R2378C7 may have at most 1 of {68} within R23C7
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {68} -> Split cage 23/4 in R2378C8 may have at most 1 of {68} within R23C8
Cage 10/2 in R1C67 must have at least 1 of {24} -> Cage 12/3 in R1C12+R2C1 may have at most 1 of {24} within R1C12
Cage 10/2 in R1C67 must have at least 1 of {26} -> Cage 12/3 in R1C12+R2C1 may have at most 1 of {26} within R1C12
Cage 11/2 in R34C1 must have at least 1 of {58} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {58} within R89C1
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {13} -> Split cage 19/4 in R7C2378 may have at most 1 of {13} within R7C78
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {13} -> Split cage 19/4 in R8C2378 may have at most 1 of {13} within R8C78
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {24} -> Split cage 23/4 in R2378C7 may have at most 1 of {24} within R78C7
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {24} -> Split cage 23/4 in R2378C8 may have at most 1 of {24} within R78C8
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {24} -> Split cage 19/4 in R7C2378 may have at most 1 of {24} within R7C78
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {24} -> Split cage 19/4 in R8C2378 may have at most 1 of {24} within R8C78
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Split cage 23/4 in R2378C7 may have at most 1 of {34} within R78C7
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Split cage 23/4 in R2378C8 may have at most 1 of {34} within R78C8
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Split cage 19/4 in R8C2378 may have at most 1 of {34} within R8C78
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Split cage 19/4 in R7C2378 may have at most 1 of {34} within R7C78
Cage 13/3 in R1C89+R2C9 must have at least 1 of {13} -> Split cage 17/4 in R2C2378 may have at most 1 of {13} within R2C78
Cage 13/3 in R1C89+R2C9 must have at least 1 of {35} -> Split cage 23/4 in R3C2378 may have at most 1 of {35} within R3C78
Cage 13/3 in R1C89+R2C9 must have at least 1 of {35} -> Split cage 23/4 in R2378C7 may have at most 1 of {35} within R23C7
Cage 13/3 in R1C89+R2C9 must have at least 1 of {35} -> Split cage 17/4 in R2C2378 may have at most 1 of {35} within R2C78
Cage 13/3 in R1C89+R2C9 must have at least 1 of {35} -> Split cage 23/4 in R2378C8 may have at most 1 of {35} within R23C8
Cage 13/3 in R1C89+R2C9 must have at least 1 of {37} -> Split cage 23/4 in R3C2378 may have at most 1 of {37} within R3C78
Cage 13/3 in R1C89+R2C9 must have at least 1 of {37} -> Split cage 23/4 in R2378C7 may have at most 1 of {37} within R23C7
Cage 13/3 in R1C89+R2C9 must have at least 1 of {37} -> Split cage 17/4 in R2C2378 may have at most 1 of {37} within R2C78
Cage 13/3 in R1C89+R2C9 must have at least 1 of {37} -> Split cage 23/4 in R2378C8 may have at most 1 of {37} within R23C8
Split cage 23/4 in R2378C8 must have at least 1 of {89} -> Cage 20/4 in R456C8+R5C9 may have at most 1 of {89} within R456C8
Innies of R1 -> R1C12589 = 19
Cage 22/4 in R23C78 must have at least 1 of {35} -> Split cage 19/5 in R1C12589 may have at most 1 of {35} within R1C89
Cage 18/4 in R23C23 must have at least 1 of {25} -> Split cage 19/5 in R1C12589 may have at most 1 of {25} within R1C12
Innies of C3 -> R14569C3 = 31
Outies minus innies of C4, N1 -> R1C3-R4C1 = 4
Outies minus innies of C4, N7 -> R9C3-R6C1 = 5
R4C1 must have at least 1 of {35} -> Split cage 31/5 in R14569C3 may have at most 1 of {35}
Cage 23/4 in R456C2+R5C1 must have at least 1 of {456} -> Split cage 31/5 in R14569C3 may have at most 2 of {456}
Split cage 31/5 in R14569C3 must have at least 1 of {123} -> Split cage 14/4 in R2378C3 may have at most 2 of {123}
Split cage 14/4 in R2378C3 -> R8C3 = {1234567}, R7C3 = {1234567}, R3C3 = {1234567}, R2C3 = {1234567}
Split cage 31/5 in R14569C3 must have at least 1 of {124} -> Split cage 14/4 in R2378C3 may have at most 2 of {124}
Split cage 14/4 in R2378C3 -> R8C3 = {123456}, R7C3 = {123456}, R3C3 = {123456}, R2C3 = {123456}
Split cage 31/5 in R14569C3 must have at least 1 of {456} -> Cage 23/4 in R456C2+R5C1 may have at most 2 of {456}
Cage 23/4 in R456C2+R5C1 must have at least 1 of {29} -> Split cage 31/5 in R14569C3 may have at most 1 of {29} within R456C3
Cage 23/4 in R456C2+R5C1 must have at least 1 of {69} -> Split cage 31/5 in R14569C3 may have at most 1 of {69} within R456C3
Innies of N4 -> R46C13+R5C3 = 22
R1C3 must have at least 1 of {79} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {79}
Split cage 14/4 in R2378C3 must have at least 1 of {13} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {13} within R456C3
Split cage 14/4 in R2378C3 must have at least 1 of {14} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {14} within R456C3
Split cage 14/4 in R2378C3 must have at least 1 of {15} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {15} within R456C3
Split cage 22/5 in R46C13+R5C3 -> R5C3 = {345678}
All {9} of N4 are locked in Cage 23/4 in R456C2+R5C1 -> Cage 23/4 in R456C2+R5C1 = {9..}
9 of C3 locked in Split cage 15/2 in R1C3+R3C1 or Split cage 15/2 in R7C1+R9C3 -> 6 also locked in Split cage 15/2 in R1C3+R3C1 or Split cage 15/2 in R7C1+R9C3 -> R12589C1 <> 6
Split cage 14/4 in R2378C3 must have at least 1 of {23} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {23} within R456C3
Split cage 14/4 in R2378C3 must have at least 1 of {24} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {24} within R456C3
Split cage 14/4 in R2378C3 must have at least 1 of {26} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {26} within R456C3
Split cage 14/4 in R2378C3 must have at least 1 of {45} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {45} within R456C3
Split cage 14/4 in R2378C3 must have at least 1 of {46} -> Split cage 22/5 in R46C13+R5C3 may have at most 1 of {46} within R456C3
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {15} -> Cage 23/4 in R456C2+R5C1 may have at most 1 of {15}
Cage 23/4 in R456C2+R5C1 must have at least 1 of {27} -> Split cage 31/5 in R14569C3 may have at most 1 of {27} within R456C3
Cage 23/4 in R456C2+R5C1 must have at least 1 of {47} -> Split cage 31/5 in R14569C3 may have at most 1 of {47} within R456C3
Innies of N47 -> R4C13+R569C3 = 27
Innies of N14 -> R1456C3+R6C1 = 26
Cage 23/4 in R456C2+R5C1 must have at least 1 of {236} -> Complex cage 26/5 in R1456C3+R6C1 may have at most 2 of {236}
Innies of R3 -> R3C14569 = 22
Outies minus innies of R4, N1 -> R1C4-R3C1 = 1
Outies minus innies of R4, N3 -> R1C6-R3C9 = 0
Split cage 22/5 in R3C14569 must have at least 1 of {24} -> Split cage 23/4 in R3C2378 may have at most 1 of {24}
R1C4 & Cage 22/4 in R12C5+R2C46 must have at least 2 of {379} -> Split cage 22/5 in R3C14569 may have at most 1 of {379}
Split cage 22/5 in R3C14569 must have at least 1 of {15} -> Split cage 23/4 in R3C2378 may have at most 1 of {15}
Split cage 22/5 in R3C14569 must have at least 1 of {12} -> Cage 18/4 in R23C23 may have at most 1 of {12} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {13} -> Cage 18/4 in R23C23 may have at most 1 of {13} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {14} -> Cage 18/4 in R23C23 may have at most 1 of {14} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {15} -> Cage 22/4 in R23C78 may have at most 1 of {15} within R3C78
Split cage 22/5 in R3C14569 must have at least 1 of {15} -> Cage 18/4 in R23C23 may have at most 1 of {15} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {18} -> Cage 18/4 in R23C23 may have at most 1 of {18} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {23} -> Cage 22/4 in R23C78 may have at most 1 of {23} within R3C78
Split cage 22/5 in R3C14569 must have at least 1 of {23} -> Cage 18/4 in R23C23 may have at most 1 of {23} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {24} -> Cage 18/4 in R23C23 may have at most 1 of {24} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {26} -> Cage 18/4 in R23C23 may have at most 1 of {26} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {28} -> Cage 22/4 in R23C78 may have at most 1 of {28} within R3C78
Split cage 22/5 in R3C14569 must have at least 1 of {28} -> Cage 18/4 in R23C23 may have at most 1 of {28} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {45} -> Cage 22/4 in R23C78 may have at most 1 of {45} within R3C78
Split cage 22/5 in R3C14569 must have at least 1 of {45} -> Cage 18/4 in R23C23 may have at most 1 of {45} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {46} -> Cage 22/4 in R23C78 may have at most 1 of {46} within R3C78
Split cage 22/5 in R3C14569 must have at least 1 of {46} -> Cage 18/4 in R23C23 may have at most 1 of {46} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {48} -> Cage 18/4 in R23C23 may have at most 1 of {48} within R3C23
Split cage 22/5 in R3C14569 must have at least 1 of {89} -> Cage 22/4 in R23C78 may have at most 1 of {89} within R3C78
Innies of N12 -> R13C6+R3C145 = 22
Split cage 23/4 in R3C2378 must have at least 1 of {67} -> Complex cage 22/5 in R13C6+R3C145 may have at most 1 of {67} within R3C1456
Innies of N2 -> R13C46+R3C5 = 23
Innies of N23 -> R13C4+R3C569 = 23
Split cage 23/4 in R3C2378 must have at least 1 of {123} -> Complex cage 23/5 in R13C4+R3C569 may have at most 2 of {123}
Split cage 23/4 in R3C2378 must have at least 1 of {145} -> Complex cage 23/5 in R13C4+R3C569 may have at most 2 of {145}
Split cage 23/4 in R3C2378 must have at least 1 of {236} -> Complex cage 23/5 in R13C4+R3C569 may have at most 2 of {236}
Complex cage 23/5 in R13C4+R3C569 must have at least 1 of {19} -> Cage 22/4 in R12C5+R2C46 may have at most 1 of {19}
Cage 22/4 in R12C5+R2C46 must have at least 1 of {236} -> Split cage 23/5 in R13C46+R3C5 may have at most 2 of {236}
Innies of N8 -> R7C456+R9C46 = 23
Outies minus innies of R6, N9 -> R7C1-R9C4 = 3
Outies minus innies of R6 -> R7C9-R9C6 = 0
Innies of R7 -> R7C14569 = 26
Split cage 26/5 in R7C14569 must have at least 1 of {89} -> Cage 24/4 in R78C78 may have at most 1 of {89} within R7C78
Innies of N78 -> R7C1456+R9C6 = 26
R9C4 must have at least 1 of {345} -> Complex cage 26/5 in R7C1456+R9C6 may have at most 2 of {345}
Complex cage 26/5 in R7C1456+R9C6 must have at least 1 of {79} -> Split cage 19/4 in R7C2378 may have at most 1 of {79}
Split cage 19/4 in R7C2378 must have at least 1 of {345} -> Split cage 26/5 in R7C14569 may have at most 2 of {345}
Complex cage 26/5 in R7C1456+R9C6 must have at least 1 of {249} -> Cage 22/4 in R8C456+R9C5 may have at most 2 of {249}
Cage 22/4 in R8C456+R9C5 must have at least 1 of {135} -> Complex cage 26/5 in R7C1456+R9C6 may have at most 2 of {135}
Cage 22/4 in R8C456+R9C5 must have at least 1 of {135} -> Split cage 23/5 in R7C456+R9C46 may have at most 2 of {135}
Complex cage 26/5 in R7C1456+R9C6 must have at least 1 of {349} -> Cage 22/4 in R8C456+R9C5 may have at most 2 of {349}
Cage 22/4 in R8C456+R9C5 must have at least 1 of {58} -> Split cage 23/5 in R7C456+R9C46 may have at most 1 of {58}
Cage 22/4 in R8C456+R9C5 must have at least 1 of {58} -> Complex cage 26/5 in R7C1456+R9C6 may have at most 1 of {58} within R7C456
Complex cage 26/5 in R7C1456+R9C6 must have at least 1 of {79} -> Cage 24/4 in R78C78 may have at most 1 of {79} within R7C78
Split cage 26/5 in R7C14569 must have at least 1 of {12} -> Cage 14/4 in R78C23 may have at most 1 of {12} within R7C23
Innies of N89 -> R7C4569+R9C4 = 23
Split cage 19/4 in R7C2378 must have at least 1 of {127} -> Complex cage 23/5 in R7C4569+R9C4 may have at most 2 of {127}
Innies of C7 -> R14569C7 = 22
Outies minus innies of C6, N3 -> R1C7-R4C9 = 1
Outies minus innies of C6, N9 -> R6C9-R9C7 = 4
Split cage 22/5 in R14569C7 must have at least 1 of {23} -> Cage 22/4 in R23C78 may have at most 1 of {23} within R23C7
Innies of N6 -> R46C79+R5C7 = 25
R4C1 must have at least 1 of {35} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {35} within R4C79
Split cage 23/4 in R2378C7 must have at least 1 of {89} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {89} within R456C7
Innies of N69 -> R4C79+R569C7 = 21
Innies of N36 -> R1456C7+R6C9 = 26
Split cage 23/4 in R2378C7 must have at least 1 of {89} -> Complex cage 26/5 in R1456C7+R6C9 may have at most 1 of {89} within R1456C7
Innies of C1 -> R12589C1 = 24
All {1} of C1 are locked in Split cage 24/5 in R12589C1 -> Split cage 24/5 in R12589C1 = {1..}
All {9} of C1 are locked in Split cage 24/5 in R12589C1 -> Split cage 24/5 in R12589C1 = {9..}
Complex cage 4/2 in R1C3-R4C1 must have at least 1 of {39} -> Split cage 24/5 in R12589C1 may have at most 1 of {39} within R12C1
Complex cage 4/2 in R1C3-R4C1 must have at least 1 of {57} -> Split cage 24/5 in R12589C1 may have at most 1 of {57} within R12C1
Split cage 15/2 in R1C3+R3C1 must have at least 1 of {89} -> Split cage 24/5 in R12589C1 may have at most 1 of {89} within R12C1
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {79} -> Split cage 24/5 in R12589C1 may have at most 1 of {79} within R89C1
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {89} -> Split cage 24/5 in R12589C1 may have at most 1 of {89} within R89C1
Cage 14/4 in R78C23 must have at least 1 of {12} -> Split cage 24/5 in R12589C1 may have at most 1 of {12} within R89C1
Cage 14/4 in R78C23 must have at least 1 of {13} -> Split cage 24/5 in R12589C1 may have at most 1 of {13} within R89C1
Cage 14/4 in R78C23 must have at least 1 of {14} -> Split cage 24/5 in R12589C1 may have at most 1 of {14} within R89C1
Cage 14/4 in R78C23 must have at least 1 of {15} -> Split cage 24/5 in R12589C1 may have at most 1 of {15} within R89C1
Cage 14/4 in R78C23 must have at least 1 of {24} -> Split cage 24/5 in R12589C1 may have at most 1 of {24} within R89C1
Cage 18/4 in R23C23 must have at least 1 of {25} -> Split cage 24/5 in R12589C1 may have at most 1 of {25} within R12C1
Outies of R1 -> R2C14569 = 28
Split cage 22/5 in R3C14569 must have at least 1 of {13} -> Split cage 28/5 in R2C14569 may have at most 1 of {13} within R2C456
Split cage 22/5 in R3C14569 must have at least 1 of {15} -> Split cage 28/5 in R2C14569 may have at most 1 of {15} within R2C456
Complex cage 23/5 in R13C4+R3C569 must have at least 1 of {19} -> Split cage 28/5 in R2C14569 may have at most 1 of {19} within R2C456
Complex cage 22/5 in R13C6+R3C145 must have at least 1 of {14} -> Split cage 28/5 in R2C14569 may have at most 1 of {14} within R2C456
Complex cage 22/5 in R13C6+R3C145 must have at least 1 of {24} -> Split cage 28/5 in R2C14569 may have at most 1 of {24} within R2C456
Split cage 28/5 in R2C14569 must have at least 1 of {69} -> Cage 22/4 in R23C78 may have at most 1 of {69} within R2C78
Split cage 28/5 in R2C14569 must have at least 1 of {78} -> Cage 22/4 in R23C78 may have at most 1 of {78} within R2C78
Innies of C9 -> R12589C9 = 27
All {9} of C9 are locked in Split cage 27/5 in R12589C9 -> Split cage 27/5 in R12589C9 = {9..}
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {24} -> Split cage 27/5 in R12589C9 may have at most 1 of {24} within R12C9
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {26} -> Split cage 27/5 in R12589C9 may have at most 1 of {26} within R12C9
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {48} -> Split cage 27/5 in R12589C9 may have at most 1 of {48} within R12C9
Split cage 10/2 in R1C7+R3C9 must have at least 1 of {68} -> Split cage 27/5 in R12589C9 may have at most 1 of {68} within R12C9
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {12} -> Split cage 27/5 in R12589C9 may have at most 1 of {12} within R89C9
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {13} -> Split cage 27/5 in R12589C9 may have at most 1 of {13} within R89C9
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {24} -> Split cage 27/5 in R12589C9 may have at most 1 of {24} within R89C9
Split cage 5/2 in R7C9+R9C7 must have at least 1 of {34} -> Split cage 27/5 in R12589C9 may have at most 1 of {34} within R89C9
Cage 22/4 in R23C78 must have at least 1 of {35} -> Split cage 27/5 in R12589C9 may have at most 1 of {35} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {37} -> Split cage 27/5 in R12589C9 may have at most 1 of {37} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {59} -> Split cage 27/5 in R12589C9 may have at most 1 of {59} within R12C9
Cage 24/4 in R78C78 must have at least 1 of {56} -> Split cage 27/5 in R12589C9 may have at most 1 of {56} within R89C9
Cage 24/4 in R78C78 must have at least 1 of {79} -> Split cage 27/5 in R12589C9 may have at most 1 of {79} within R89C9
Cage 24/4 in R78C78 must have at least 1 of {89} -> Split cage 27/5 in R12589C9 may have at most 1 of {89} within R89C9
Innies of R9 -> R9C12589 = 28
All {6} of R9 are locked in Split cage 28/5 in R9C12589 -> Split cage 28/5 in R9C12589 = {6..}
Split cage 28/5 in R9C12589 & Cage 5/2 in R9C67 forms a complex hidden Pair on {12} within R9 since none of them may include both {12} -> each of Split cage 28/5 in R9C12589 & Cage 5/2 in R9C67 must include one of {12}
-> R9C12589 = {(1|2)..}
Cage 5/2 in R9C67 must have at least 1 of {24} -> Split cage 28/5 in R9C12589 may have at most 1 of {24}
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {67} -> Split cage 28/5 in R9C12589 may have at most 1 of {67} within R9C12
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {68} -> Split cage 28/5 in R9C12589 may have at most 1 of {68} within R9C12
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {79} -> Split cage 28/5 in R9C12589 may have at most 1 of {79} within R9C12
Split cage 15/2 in R7C1+R9C3 must have at least 1 of {89} -> Split cage 28/5 in R9C12589 may have at most 1 of {89} within R9C12
Cage 14/4 in R78C23 must have at least 1 of {14} -> Split cage 28/5 in R9C12589 may have at most 1 of {14} within R9C12
Cage 14/4 in R78C23 must have at least 1 of {15} -> Split cage 28/5 in R9C12589 may have at most 1 of {15} within R9C12
Cage 14/4 in R78C23 must have at least 1 of {23} -> Split cage 28/5 in R9C12589 may have at most 1 of {23} within R9C12
Cage 14/4 in R78C23 must have at least 1 of {26} -> Split cage 28/5 in R9C12589 may have at most 1 of {26} within R9C12
Cage 24/4 in R78C78 must have at least 1 of {56} -> Split cage 28/5 in R9C12589 may have at most 1 of {56} within R9C89
Cage 24/4 in R78C78 must have at least 1 of {79} -> Split cage 28/5 in R9C12589 may have at most 1 of {79} within R9C89
Cage 24/4 in R78C78 must have at least 1 of {89} -> Split cage 28/5 in R9C12589 may have at most 1 of {89} within R9C89
Outies of C9 -> R14569C8 = 22
Split cage 22/5 in R14569C8 must have at least 1 of {23} -> Cage 22/4 in R23C78 may have at most 1 of {23} within R23C8
Outies of C1 -> R14569C2 = 27
R4C1 must have at least 1 of {35} -> Split cage 27/5 in R14569C2 may have at most 1 of {35} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {12} -> Split cage 27/5 in R14569C2 may have at most 1 of {12} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {13} -> Split cage 27/5 in R14569C2 may have at most 1 of {13} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {14} -> Split cage 27/5 in R14569C2 may have at most 1 of {14} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {15} -> Split cage 27/5 in R14569C2 may have at most 1 of {15} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {18} -> Split cage 27/5 in R14569C2 may have at most 1 of {18} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {23} -> Split cage 27/5 in R14569C2 may have at most 1 of {23} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {26} -> Split cage 27/5 in R14569C2 may have at most 1 of {26} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {36} -> Split cage 27/5 in R14569C2 may have at most 1 of {36} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {38} -> Split cage 27/5 in R14569C2 may have at most 1 of {38} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {45} -> Split cage 27/5 in R14569C2 may have at most 1 of {45} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {46} -> Split cage 27/5 in R14569C2 may have at most 1 of {46} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {56} -> Split cage 27/5 in R14569C2 may have at most 1 of {56} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {58} -> Split cage 27/5 in R14569C2 may have at most 1 of {58} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {68} -> Split cage 27/5 in R14569C2 may have at most 1 of {68} within R456C2
Split cage 22/5 in R46C13+R5C3 must have at least 1 of {78} -> Split cage 27/5 in R14569C2 may have at most 1 of {78} within R456C2
Outies of R9 -> R8C14569 = 26
Split cage 23/5 in R7C456+R9C46 must have at least 1 of {12} -> Split cage 26/5 in R8C14569 may have at most 1 of {12} within R8C456
Split cage 23/5 in R7C456+R9C46 must have at least 1 of {13} -> Split cage 26/5 in R8C14569 may have at most 1 of {13} within R8C456
Split cage 23/5 in R7C456+R9C46 must have at least 1 of {24} -> Split cage 26/5 in R8C14569 may have at most 1 of {24} within R8C456
Split cage 26/5 in R8C14569 must have at least 1 of {89} -> Cage 24/4 in R78C78 may have at most 1 of {89} within R8C78
Outies minus innies of N4 -> R19C3+R37C1 = 30
All {6} of C1 are locked in Complex cage 30/4 in R19C3+R37C1 -> Complex cage 30/4 in R19C3+R37C1 = {6..}
8 of Complex cage 30/4 in R19C3+R37C1 locked in R37C1, R9C3 since Complex cage 30/4 in R19C3+R37C1 = {8..} -> R89C1 <> 8
Cage 16/3 in R89C1+R9C2 -> R9C2 = {23456789}
Split cage 15/2 in R7C1+R9C3 & Cage 16/3 in R89C1+R9C2 forms a complex naked Pair on {79} -> not elsewhere in N7
Cage 14/4 in R78C23 must have at least 1 of {36} -> Split cage 28/5 in R9C12589 may have at most 1 of {36} within R9C12
Outies minus innies of R3 -> R34C19 = 20
Complex cage 20/4 in R34C19 -> R4C9 = {157}, R3C9 = {248}
Complex cage 9/2 in R1C6+R4C9 -> R1C6 = {248}
Complex cage 1/2 in R1C7-R4C9 -> R1C7 = {268}
Complex cage 22/5 in R13C6+R3C145 must have at least 1 of {23} -> Cage 22/4 in R12C5+R2C46 may have at most 1 of {23}
Cage 22/4 in R12C5+R2C46 must have at least 1 of {67} -> Split cage 23/5 in R13C46+R3C5 may have at most 1 of {67}
Split cage 22/5 in R14569C7 must have at least 1 of {26} -> Split cage 23/4 in R2378C7 may have at most 1 of {26}
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {15} -> Cage 20/4 in R456C8+R5C9 may have at most 1 of {15}
R1C7 must have at least 1 of {268} -> Complex cage 21/5 in R4C79+R569C7 may have at most 2 of {268}
Cage 9/2 in R34C9 must have at least 1 of {147} -> Split cage 27/5 in R12589C9 may have at most 2 of {147}
Cage 9/2 in R34C9 must have at least 1 of {258} -> Split cage 27/5 in R12589C9 may have at most 2 of {258}
Split cage 23/4 in R2378C7 must have at least 1 of {349} -> Split cage 25/5 in R46C79+R5C7 may have at most 2 of {349}
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {56} -> Cage 20/4 in R456C8+R5C9 may have at most 1 of {56}
Split cage 23/4 in R2378C7 must have at least 1 of {369} -> Complex cage 21/5 in R4C79+R569C7 may have at most 2 of {369}
Complex cage 23/5 in R13C4+R3C569 must have at least 1 of {567} -> Cage 22/4 in R12C5+R2C46 may have at most 2 of {567}
Cage 22/4 in R12C5+R2C46 must have at least 1 of {89} -> Split cage 23/5 in R13C46+R3C5 may have at most 1 of {89}
Cage 22/4 in R12C5+R2C46 must have at least 1 of {123} -> Complex cage 22/5 in R13C6+R3C145 may have at most 2 of {123}
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {349} -> Split cage 23/4 in R2378C7 may have at most 2 of {349}
R1C7 & Split cage 23/4 in R2378C7 must have at least 2 of {268} -> Complex cage 21/5 in R4C79+R569C7 may have at most 1 of {268}
Complex cage 21/5 in R4C79+R569C7 must have at least 1 of {49} -> Split cage 23/4 in R2378C7 may have at most 1 of {49}
Split cage 23/4 in R2378C7 must have at least 1 of {15} -> Split cage 22/5 in R14569C7 may have at most 1 of {15}
Complex cage 20/4 in R34C19 must have at least 1 of {57} -> Cage 16/3 in R34C6+R4C7 may have at most 1 of {57} within R4C67
Complex cage 20/4 in R34C19 must have at least 1 of {57} -> Complex cage 20/4 in R34C5+R4C28 may have at most 1 of {57} within R4C258
Split cage 23/4 in R2378C7 must have at least 1 of {15} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {15} within R456C7
Split cage 23/4 in R2378C7 must have at least 1 of {56} -> Complex cage 26/5 in R1456C7+R6C9 may have at most 1 of {56} within R1456C7
Split cage 23/4 in R2378C7 must have at least 1 of {57} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {57} within R456C7
Split cage 23/4 in R2378C7 must have at least 1 of {59} -> Complex cage 21/5 in R4C79+R569C7 may have at most 1 of {59} within R456C7
Complex cage 22/5 in R13C6+R3C145 must have at least 1 of {23} -> Split cage 28/5 in R2C14569 may have at most 1 of {23} within R2C456
Complex cage 22/5 in R13C6+R3C145 must have at least 1 of {45} -> Split cage 28/5 in R2C14569 may have at most 1 of {45} within R2C456
Split cage 23/5 in R13C46+R3C5 must have at least 1 of {89} -> Split cage 28/5 in R2C14569 may have at most 1 of {89} within R2C456
Split cage 22/5 in R14569C7 must have at least 1 of {26} -> Cage 24/4 in R78C78 may have at most 1 of {26} within R78C7
Split cage 22/5 in R14569C7 must have at least 1 of {28} -> Cage 22/4 in R23C78 may have at most 1 of {28} within R23C7
Split cage 22/5 in R14569C7 must have at least 1 of {28} -> Cage 24/4 in R78C78 may have at most 1 of {28} within R78C7
Split cage 22/5 in R14569C7 must have at least 1 of {34} -> Cage 22/4 in R23C78 may have at most 1 of {34} within R23C7
Split cage 22/5 in R14569C7 must have at least 1 of {47} -> Cage 22/4 in R23C78 may have at most 1 of {47} within R23C7
Split cage 22/5 in R14569C7 must have at least 1 of {47} -> Cage 24/4 in R78C78 may have at most 1 of {47} within R78C7
Split cage 22/5 in R14569C7 must have at least 1 of {49} -> Cage 22/4 in R23C78 may have at most 1 of {49} within R23C7
Split cage 22/5 in R14569C7 must have at least 1 of {49} -> Cage 24/4 in R78C78 may have at most 1 of {49} within R78C7
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {15} -> Split cage 22/5 in R14569C8 may have at most 1 of {15} within R456C8
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {56} -> Split cage 22/5 in R14569C8 may have at most 1 of {56} within R456C8
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {57} -> Split cage 22/5 in R14569C8 may have at most 1 of {57} within R456C8
Outies minus innies of N2 -> R1C37+R3C19 = 25
Outies minus innies of N8 -> R9C3467 = 17
Split cage 17/4 in R9C3467 must have at least 1 of {35} -> Cage 16/3 in R89C9+R9C8 may have at most 1 of {35} within R9C89
Split cage 17/4 in R9C3467 must have at least 1 of {37} -> Cage 16/3 in R89C9+R9C8 may have at most 1 of {37} within R9C89
Split cage 17/4 in R9C3467 must have at least 1 of {45} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {45} within R9C12
Split cage 17/4 in R9C3467 must have at least 1 of {45} -> Cage 16/3 in R89C9+R9C8 may have at most 1 of {45} within R9C89
Split cage 17/4 in R9C3467 must have at least 1 of {47} -> Cage 16/3 in R89C1+R9C2 may have at most 1 of {47} within R9C12
Split cage 17/4 in R9C3467 must have at least 1 of {47} -> Cage 16/3 in R89C9+R9C8 may have at most 1 of {47} within R9C89
Cage 16/3 in R89C9+R9C8 -> R9C9 = {12356789}, R9C8 = {12356789}
Outies minus innies of C7 -> R19C67 = 15
Outies minus innies of N6 -> R19C7+R37C9 = 15
Outies minus innies of R7 -> R6C19+R9C46 = 16
Outies minus innies of R7, N56 -> R34C14+R4C3 = 22
Split cage 23/4 in R3C2378 must have at least 1 of {67} -> Complex cage 22/5 in R34C14+R4C3 may have at most 1 of {67} within R3C14
Complex cage 22/5 in R34C14+R4C3 -> R3C4 = {1234568}
Outies minus innies of C7, N125 -> R6C134+R79C4 = 18
Cage 23/4 in R456C2+R5C1 must have at least 1 of {27} -> Complex cage 18/5 in R6C134+R79C4 may have at most 1 of {27} within R6C13
Outies minus innies of N256 -> R7C1+R9C3-R6C1-R9C4 = 8
Outies minus innies of R7, N145 -> R134C6+R4C79 = 25
R4C1 must have at least 1 of {35} -> Complex cage 25/5 in R134C6+R4C79 may have at most 1 of {35} within R4C679
Cage 22/4 in R12C5+R2C46 must have at least 1 of {68} -> Complex cage 25/5 in R134C6+R4C79 may have at most 1 of {68} within R13C6
Cage 22/4 in R12C5+R2C46 must have at least 1 of {89} -> Complex cage 25/5 in R134C6+R4C79 may have at most 1 of {89} within R13C6
Outies minus innies of N458 -> R1C7+R3C9-R1C6-R4C9 = 1
Outies minus innies of C3, N235 -> R6C679+R79C6 = 27
Outies minus innies of N245 -> R6C9+R9C6-R7C9-R9C7 = 4
Complex XY-Chain on 8 with 1 cells 1 links (8=6)R3C1-Complex cage 20/4 in R34C19-(4=8)Split cage 10/2 in R1C7+R3C9 -> common buddies of R3C1 & R1C7, R3C9 <> 8
Complex XY-Chain on 1|5 with 2 links (1)R1C89=(1)R23C78-Cage 22/4 in R23C78-(3=5)Cage 22/4 in R23C78 ->
-> R1C89 = {(1|~5)..}
Complex XY-Chain on 5|7 with 2 links (5)R23C78=(5)R1C89-Cage 13/3 in R1C89+R2C9-(3=7)Cage 13/3 in R1C89+R2C9 ->
-> R12C9 = {(7|~5)..}
Complex XY-Chain on 8 with 1 cells 2 links (8=6)R3C1-Complex cage 20/4 in R34C19-(4=2)Split cage 10/2 in R1C7+R3C9-Split cage 10/2 in R1C7+R3C9-(6=8)Cage 10/2 in R1C67 -> common buddies of R3C1 & R1C67 <> 8
Cage 12/3 in R1C12+R2C1 & Split cage 24/5 in R12589C1 -> R5C1 = {1234579}, R2C1 = {1345789}
Cage 12/3 in R1C12+R2C1 must have at least 1 of {13} -> Cage 18/4 in R23C23 may have at most 1 of {13}
Cage 12/3 in R1C12+R2C1 must have at least 1 of {13} -> Split cage 14/4 in R2378C3 may have at most 1 of {13} within R23C3
Cage 12/3 in R1C12+R2C1 must have at least 1 of {13} -> Split cage 17/4 in R2C2378 may have at most 1 of {13} within R2C23
Complex cage 6/3 in R2C19-R1C5 & Cage 13/3 in R1C89+R2C9 -> R1C5 = {124568}
Cage 16/3 in R89C1+R9C2 & Split cage 24/5 in R12589C1 -> R9C2 = {2345689}
Complex XY-Chain on 7|5 with 1 links (7)R89C1=(7)R7C1, R9C3-(7=5)Complex cage 4/2 in R1C3-R4C1 ->
-> R89C1 = {(7|~5)..}
Complex XY-Chain on 7|5 with 1 links (7)R456C2=(7)R23C2-(7=5)Complex cage 4/2 in R1C3-R4C1 ->
-> R456C2 = {(7|~5)..}
Split cage 17/4 in R2C2378 & Cage 22/4 in R23C78 -> R3C7 = {1345679}
Complex cage 6/3 in R2C19-R1C5 & Split cage 19/5 in R1C12589 -> R2C9 = {234679}, R1C5 = {1456}
Split cage 23/5 in R13C46+R3C5 & Split cage 28/5 in R2C14569 forms a complex hidden Pair on {89} within N2 since none of them may include both {89} -> each of Split cage 23/5 in R13C46+R3C5 & Split cage 28/5 in R2C14569 must include one of {89}
-> R2C456 = {(8|9)..}
Cage 22/4 in R12C5+R2C46 must have at least 1 of {237} -> Split cage 17/4 in R2C2378 may have at most 2 of {237}
Split cage 17/4 in R2C2378 must have at least 1 of {14} -> Split cage 28/5 in R2C14569 may have at most 1 of {14}
Cage 22/4 in R12C5+R2C46 must have at least 1 of {238} -> Split cage 17/4 in R2C2378 may have at most 2 of {238}
Split cage 17/4 in R2C2378 must have at least 1 of {15} -> Split cage 28/5 in R2C14569 may have at most 1 of {15}
Split cage 17/4 in R2C2378 must have at least 1 of {16} -> Complex cage 6/3 in R2C19-R1C5 may have at most 1 of {16} within R2C19
Split cage 28/5 in R2C14569 must have at least 1 of {23} -> Cage 18/4 in R23C23 may have at most 1 of {23} within R2C23
Complex XY-Loop with 2 links (8)R1C89=(8)R1C67-Cage 10/2 in R1C67-(6=8)Split cage 10/2 in R1C7+R3C9... -> no 8 elsewhere in N3
Cage 22/4 in R23C78 -> R3C8 = {1345679}, R2C8 = {1345679}, R2C7 = {1345679}
Cage 22/4 in R23C78 must have at least 1 of {14} -> Split cage 19/5 in R1C12589 may have at most 1 of {14} within R1C89
Cage 22/4 in R23C78 must have at least 1 of {14} -> Split cage 27/5 in R12589C9 may have at most 1 of {14} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {16} -> Split cage 19/5 in R1C12589 may have at most 1 of {16} within R1C89
Cage 22/4 in R23C78 must have at least 1 of {16} -> Split cage 27/5 in R12589C9 may have at most 1 of {16} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {47} -> Split cage 27/5 in R12589C9 may have at most 1 of {47} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {49} -> Split cage 27/5 in R12589C9 may have at most 1 of {49} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {67} -> Split cage 27/5 in R12589C9 may have at most 1 of {67} within R12C9
Cage 22/4 in R23C78 must have at least 1 of {69} -> Split cage 27/5 in R12589C9 may have at most 1 of {69} within R12C9
Complex XY-Chain on 4|8 with 2 links (4)R4569C7=(4)R2378C7-Split cage 23/4 in R2378C7-(9=8)Split cage 23/4 in R2378C7 ->
-> R78C7 = {(8|~4)..}
Complex XY-Chain on 9|4 with 2 links (9=6)Complex cage 1/2 in R1C4-R3C1-Complex cage 20/4 in R34C19-(4=8)Split cage 10/2 in R1C7+R3C9-(8=4)Split cage 19/5 in R1C12589 ->
-> R1C46 = {(9|~4)..}
Split cage 23/4 in R2378C8 & Cage 24/4 in R78C78 -> R8C7 = {12356789}, R7C7 = {12356789}
Complex cage 4/3 in R19C2-R5C1 & Split cage 24/5 in R12589C1 -> R5C1 = {134579}
Complex XY-Chain on 2|8 with 2 links (2)R456C2=(2)R46C3, R6C1-Split cage 22/5 in R46C13+R5C3-(7=8)Split cage 22/5 in R46C13+R5C3 ->
-> R456C2 = {(2|~8)..}
Split cage 27/5 in R14569C2 must have at least 1 of {37} -> Split cage 18/4 in R2378C2 may have at most 1 of {37}
Cage 16/3 in R89C1+R9C2 & Split cage 17/4 in R9C3467 -> R9C1 = {13479}, R8C1 = {12349}
Complex XY-Chain on 7|8 with 2 links (7)R9C1=(7)R7C1, R9C3-Split cage 15/2 in R7C1+R9C3-(6=8)Split cage 15/2 in R7C1+R9C3 ->
-> R9C12 = {(7|~8)..}
Cage 11/3 in R6C34+R7C4 & Split cage 22/5 in R46C13+R5C3 -> R7C4 = {1234678}
Split cage 23/4 in R3C2378 & Split cage 17/4 in R2C2378 -> R2C8 = {145679}, R2C7 = {145679}
Split cage 24/5 in R12589C1 & Split cage 19/5 in R1C12589 -> R1C9 = {123468}, R1C8 = {123468}
Cage 13/3 in R1C89+R2C9 -> R2C9 = {23469}
All {5} of N3 are locked in Cage 22/4 in R23C78 -> Cage 22/4 in R23C78 = {5..}
Cage 22/4 in R23C78 -> R3C8 = {145679}, R3C7 = {145679}
Complex XY-Chain on 3|8 with 2 links (3)R3C23=(3)R3C456-Complex cage 22/5 in R13C6+R3C145-(9=8)Split cage 22/5 in R3C14569 ->
-> R3C23 = {(3|~8)..}
Cage 18/4 in R23C23 must have at least 1 of {23} -> Cage 12/3 in R1C12+R2C1 may have at most 1 of {23}
Cage 12/3 in R1C12+R2C1 must have at least 1 of {14} -> Split cage 14/4 in R2378C3 may have at most 1 of {14} within R23C3
Cage 12/3 in R1C12+R2C1 must have at least 1 of {14} -> Split cage 17/4 in R2C2378 may have at most 1 of {14} within R2C23
Cage 12/3 in R1C12+R2C1 must have at least 1 of {14} -> Split cage 18/4 in R2378C2 may have at most 1 of {14} within R23C2
Cage 12/3 in R1C12+R2C1 must have at least 1 of {15} -> Split cage 14/4 in R2378C3 may have at most 1 of {15} within R23C3
Cage 12/3 in R1C12+R2C1 must have at least 1 of {15} -> Split cage 17/4 in R2C2378 may have at most 1 of {15} within R2C23
Cage 12/3 in R1C12+R2C1 must have at least 1 of {15} -> Split cage 18/4 in R2378C2 may have at most 1 of {15} within R23C2
Cage 18/4 in R23C23 must have at least 1 of {23} -> Split cage 19/5 in R1C12589 may have at most 1 of {23} within R1C12
Complex XY-Chain on 9|1 with 2 links (9)R2C9=(9)R23C78-Cage 22/4 in R23C78-(6=1)Cage 22/4 in R23C78 ->
-> R12C9 = {(9|~1)..}
Cage 22/4 in R23C78 & Split cage 23/4 in R2378C8 -> R8C8 = {12356789}, R7C8 = {12356789}
Cage 24/4 in R78C78 & Cage 16/3 in R89C9+R9C8 forms a complex hidden Pair on {56} within N9 since none of them may include both {56} -> each of Cage 24/4 in R78C78 & Cage 16/3 in R89C9+R9C8 must include one of {56}
-> R89C9, R9C8 = {(5|6)..}
Cage 24/4 in R78C78 must have at least 1 of {69} -> Cage 16/3 in R89C9+R9C8 may have at most 1 of {69}
Cage 16/3 in R89C9+R9C8 -> R9C9 = {2356789}, R9C8 = {2356789}, R8C9 = {23456789}
Cage 24/4 in R78C78 must have at least 1 of {39} -> Split cage 27/5 in R12589C9 may have at most 1 of {39} within R89C9
Cage 24/4 in R78C78 must have at least 1 of {69} -> Split cage 28/5 in R9C12589 may have at most 1 of {69} within R9C89
Cage 24/4 in R78C78 must have at least 1 of {69} -> Split cage 27/5 in R12589C9 may have at most 1 of {69} within R89C9
Cage 24/4 in R78C78 must have at least 1 of {78} -> Split cage 27/5 in R12589C9 may have at most 1 of {78} within R89C9
Complex XY-Chain on 3|4 with 2 links (3)R12589C9=(3)R7C9-Split cage 5/2 in R7C9+R9C7-(4)R7C9, R9C7=(4)R8C9 -> R8C9<>3
-> R12589C9 = {(3|4)..}
Split cage 27/5 in R12589C9 must have at least 1 of {34} -> Complex cage 15/4 in R19C7+R37C9 may have at most 1 of {34} within R37C9
Split cage 27/5 in R12589C9 must have at least 1 of {56} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {56} within R46C9
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {147} -> Cage 20/4 in R456C8+R5C9 may have at most 2 of {147}
Cage 13/3 in R1C89+R2C9 & Split cage 27/5 in R12589C9 -> R1C9 = {12346}, R1C8 = {13468}
Complex XY-Chain on 3|2 with 3 links (3)R12C9=(3)R1C8-(8=6)Split cage 19/5 in R1C12589-(6=2)Split cage 10/2 in R1C7+R3C9 ->
-> R12C9 = {(3|~2)..}
Split cage 27/5 in R12589C9 must have at least 1 of {16} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {16} within R46C9
Complex XY-Chain on 5|7 with 2 links (5)R46C9=(5)R589C9-Split cage 27/5 in R12589C9-(7)R589C9=(7)R46C9 ->
-> R46C9 = {(5|7)..}
Cage 16/3 in R89C9+R9C8 & Split cage 27/5 in R12589C9 -> R9C9 = {235689}, R9C8 = {23578}, R5C9 = {12346789}
Cage 16/3 in R89C1+R9C2 & Split cage 28/5 in R9C12589 -> R9C5 = {12356789}
Cage 16/3 in R89C9+R9C8 & Split cage 28/5 in R9C12589 -> R8C9 = {2345689}
7 of C9 locked in R456C9 -> not elsewhere in N6
All {7} of C7 are locked in Split cage 23/4 in R2378C7 -> Split cage 23/4 in R2378C7 = {7..}
Split cage 23/4 in R2378C7 -> R3C7 = {15679}, R2C7 = {15679}
Split cage 23/4 in R2378C7 must have at least 1 of {39} -> Split cage 25/5 in R46C79+R5C7 may have at most 1 of {39}
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {68} -> Cage 20/4 in R456C8+R5C9 may have at most 1 of {68}
Split cage 22/5 in R14569C8 must have at least 1 of {24} -> Split cage 23/4 in R2378C8 may have at most 1 of {24}
Split cage 27/5 in R12589C9 -> R5C9 = {1346789}, R2C9 = {3469}, R1C9 = {1346}
Cage 13/3 in R1C89+R2C9 -> R1C8 = {1346}
R1C7, R3C9 forms a hidden Pair on {28} within N3 -> R1C7, R3C9 = {28}
Cage 10/2 in R1C67 = {28} (Naked Pair in R1)
Complex cage 1/2 in R1C7-R4C9 -> R4C9 = {17}
Cage 12/3 in R1C12+R2C1 -> R2C1 = {134578}
All {2} of N1 are locked in Cage 18/4 in R23C23 -> Cage 18/4 in R23C23 = {2..}
Split cage 25/5 in R46C79+R5C7 & Split cage 23/4 in R2378C7 forms a complex hidden Pair on {56} within C7 since none of them may include both {56} -> each of Split cage 25/5 in R46C79+R5C7 & Split cage 23/4 in R2378C7 must include one of {56}
-> R456C7 = {(5|6)..}
R1C6 must have at least 1 of {28} -> Cage 22/4 in R12C5+R2C46 may have at most 1 of {28}
R4C9 must have at least 1 of {17} -> Cage 20/4 in R456C8+R5C9 may have at most 1 of {17}
R4C9 must have at least 1 of {17} -> Complex cage 26/5 in R1456C7+R6C9 may have at most 1 of {17}
Split cage 25/5 in R46C79+R5C7 must have at least 1 of {47} -> Cage 20/4 in R456C8+R5C9 may have at most 1 of {47}
Split cage 28/5 in R2C14569 must have at least 1 of {34} -> Split cage 17/4 in R2C2378 may have at most 1 of {34}
Split cage 28/5 in R2C14569 -> R2C1 = {13478}
2 of C1 locked in Cage 16/3 in R89C1+R9C2 or Split cage 22/5 in R46C13+R5C3 -> 5 also locked in Cage 16/3 in R89C1+R9C2 or Split cage 22/5 in R46C13+R5C3 -> R456C2 <> 5
2 of C1 locked in Cage 16/3 in R89C1+R9C2 or Complex cage 7/2 in R6C1+R9C4 -> 5 also locked in Cage 16/3 in R89C1+R9C2 or Complex cage 7/2 in R6C1+R9C4 -> R9C589 <> 5
Cage 16/3 in R89C9+R9C8 -> R8C9 = {23568}
Complex cage 4/3 in R8C19-R9C5 -> R9C5 = {123678}
All {4} of N9 are locked in Split cage 5/2 in R7C9+R9C7 -> Split cage 5/2 in R7C9+R9C7 = {4..}
Split cage 5/2 in R7C9+R9C7 -> R9C7 = {14}, R7C9 = {14}
Cage 5/2 in R9C67 = {14} (Naked Pair in R9)
Split cage 5/2 in R7C9+R9C7 = {14} (Naked Pair in N9)
Complex cage 9/2 in R6C9+R9C6 -> R6C9 = {58}
Cage 12/2 in R9C34 -> R9C3 = {79}
R19C3 forms a naked Pair on {79} within C3 -> not elsewhere in C3
8 of C3 locked in R456C3 -> not elsewhere in N4
Complex cage 5/2 in R9C3-R6C1 -> R6C1 = {24}
Split cage 15/2 in R7C1+R9C3 -> R7C1 = {68}
R37C1 forms a naked Pair on {68} within C1 -> not elsewhere in C1
7 of N7 locked in R9C13 -> not elsewhere in R9
Cage 16/3 in R89C1+R9C2 -> R8C1 = {124}
9 of N7 locked in R9C123 -> not elsewhere in R9
Cage 16/3 in R89C9+R9C8 -> R8C9 = {2568}
Complex cage 2/3 in R19C8-R5C9 -> R5C9 = {134679}
Complex cage 4/3 in R19C2-R5C1 -> R5C1 = {34579}
All {7} of N9 are locked in Cage 24/4 in R78C78 -> Cage 24/4 in R78C78 = {7..}
All {9} of N9 are locked in Cage 24/4 in R78C78 -> Cage 24/4 in R78C78 = {9..}
Cage 24/4 in R78C78 -> R8C8 = {235679}, R8C7 = {235679}, R7C8 = {235679}, R7C7 = {235679}
All {8} of C7 are locked in Complex cage 26/5 in R1456C7+R6C9 -> Complex cage 26/5 in R1456C7+R6C9 = {8..}
Complex cage 26/5 in R1456C7+R6C9 -> R6C7 = {123456}, R5C7 = {123456}, R4C7 = {123456}, R1C7 = 8
R1C7 = 8
R1C6 = 2
R3C9 = 2
R4C9 = 7
Complex cage 2/3 in R19C8-R5C9 -> R9C8 = {28}
Cage 18/3 in R6C67+R7C6 -> R7C6 = {3456789}, R6C6 = {3456789}
All {2} of N1 are locked in Split cage 17/4 in R2C2378 -> Split cage 17/4 in R2C2378 = {2..}
Split cage 17/4 in R2C2378 -> R2C8 = {14569}, R2C7 = {1569}, R2C3 = {12456}, R2C2 = {1245689}
7 of N3 locked in R3C78 -> not elsewhere in R3
Split cage 23/4 in R3C2378 -> R3C3 = {1346}, R3C2 = {134689}
7 of C2 locked in R56C2 -> not elsewhere in N4
All {7} of N4 are locked in Split cage 27/5 in R14569C2 -> Split cage 27/5 in R14569C2 = {7..}
All {9} of N6 are locked in Cage 20/4 in R456C8+R5C9 -> Cage 20/4 in R456C8+R5C9 = {9..}
All {7} of C8 are locked in Split cage 23/4 in R2378C8 -> Split cage 23/4 in R2378C8 = {7..}
All {8} of C8 are locked in Split cage 22/5 in R14569C8 -> Split cage 22/5 in R14569C8 = {8..}
Split cage 22/5 in R14569C8 -> R6C8 = {1234568}, R5C8 = {1234568}, R4C8 = {1234568}
R5C9 = 9 (hidden single in N6)
R9C1 = 9 (hidden single in C1)
R1C3 = 9 (hidden single in C3)
R1C4 = 7
R1C8 = 3
R2C1 = 7
R3C1 = 6
R4C1 = 5
R6C1 = 2
R7C1 = 8
R8C1 = 1
R8C9 = 5
R9C2 = 6
R9C3 = 7
R9C5 = 2
R9C8 = 8
R9C9 = 3
R1C1 = 4
R1C2 = 1
R1C5 = 5
R1C9 = 6
R2C9 = 4
R5C1 = 3
R6C9 = 8
R9C4 = 5
R3C3 = 3
R7C9 = 1
R9C6 = 1
R9C7 = 4
R3C2 = 8
R7C2 = 3 (hidden single in R7)
R2C2 = 5
R7C3 = 5
R8C2 = 2
R8C3 = 4
R2C3 = 2
R8C4 = 9 (hidden single in C4)
R4C4 = 2 (hidden single in N5)
R5C7 = 2 (hidden single in Cage 45/9 in R3..7C5+R5C3467)
R7C8 = 2 (hidden single in N9)
R2C8 = 9
R3C4 = 1
R3C8 = 5
R4C3 = 8
R4C7 = 3
R6C7 = 5
R7C7 = 9
R8C8 = 7
R2C7 = 1
R3C7 = 7
R5C3 = 6
R6C3 = 1
R8C7 = 6
R2C4 = 3
R5C4 = 8
R5C6 = 5 (hidden single in N5)
R2C6 = 8
R8C6 = 3
R2C5 = 6
R8C5 = 8
R6C5 = 3 (hidden single in N5)
R7C5 = 7
R6C6 = 7 (hidden single in N5)
R5C2 = 7 (hidden single in R5)
R4C2 = 4
R6C2 = 9
R7C6 = 6
R3C5 = 9
R4C5 = 1
R4C6 = 9
R4C8 = 6
R6C8 = 4
R7C4 = 4
R3C6 = 4
R5C5 = 4
R5C8 = 1
R6C4 = 6

The grid is solved!

Thanks for the update, Jean-Christophe! I'm sure it will provide us all with hours of endless fun, as I'm sure the upcoming SudokuSolver version will, too. I am constantly amazed that you and Richard are obviously able to invest so much time and energy into your software. Keep up the great work, both of you! ;clapclap;

_________________
Cheers,
Mike


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sat May 03, 2008 10:29 pm 
Offline
Grand Master
Grand Master
User avatar

Joined: Mon Apr 21, 2008 10:32 am
Posts: 868
JC,

More info regarding the changes you have made to the solver from 1.2b1 to 1.3b1 would be very much appreciated.
I am currently testing a beta version of my Samurai generator and decided to switch from using 1.2b1 as the logical solver to using 1.3b1, and there seems to be some changes. The main problem is that I cannot switch forth and back between the two versions because doing so completely ruins my setting of the sequence of solver techniques, and resequencing it takes a good 10 minutes.
The ability to move a block of solving techniques would be great.

Here the JSudoku Solver logs from 1.2b1 and 1.3b1 for the generated Samurai listed at the end:

1.2b1
193 Naked Singles
65 Hidden Singles
10 Intersections

1.3b1
182 Naked Singles
76 Hidden Singles
3 Intersections

000204000709060000003009586000042300032005070090300201901520000020090000000000000
001907050000005001200600400000009108780002046069400070000530000000000000000000000
000070000000000000000310000078000005200850090000007081000008000000600000000020000
390000000005060000800500000009020004041090008600150020050001490002000005000000000
000097408000130500000000000802000000306050000000043809201300000000016030000000000

_________________
Quis custodiet ipsos custodes?
Normal: [D  Y-m-d,  G:i]     PM->email: [D, d M Y H:i:s]


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sat May 03, 2008 11:39 pm 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 8:12 pm
Posts: 90
Location: London, UK
Mike Wow A50V2, at last my tryfurcation can be consigned to history.

Borge I have run both versions simultaneously, in fact it was the first thing I tried, as I thought JC might have resequenced the order of grid visits for the Clueless Explosion..

Some way off handling Ronin though, one more Finned Fish and an ALS, but needs those inter-grid chains. Recursively solved with 27 guesses.

_________________
I have 81 brain cells left, I think.


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sun May 04, 2008 2:50 am 
Offline
Expert
Expert

Joined: Sun Apr 27, 2008 10:44 am
Posts: 102
Location: Belgium
Børge wrote:
Many very nice improvements! :D Thanks a lot JC. ;clapclap; :applause:

Some nit-picking ;)

1) Under Windows I am unable to run 1.2b1 and 1.3b1 simultaneously on the same PC.
Would make it easier to set the sequence of solver techniques in 1.3b1 similar to to the sequence I use in 1.2b1.
EDIT:
VERY BAD: The first start of 1.3b1 seems to have ruined my settings of the sequence of solver techniques in 1.2b1!

2) Separate solvers for 2-String Kite and Remote Pairs would be nice.
AFAIK 2-String Kites are more common than Skyscrapers.

3) Row and column headers as we have discussed per PM; Please!

1) Reason: The set of solvers is different, so they're reset to defaults whenever you switch between 1.2 & 1.3. Sorry, I can't really change this. At least, you get a warning message in 1.3 which you do not get in older versions.

2) Turbot fish will catch 2-String Kites (as well as skyscrapers). 2-String Kite is maybe more common, but harder to spot for a human beeing, so I made it a separate solver. I'll put Remote pairs in my list.

3) I know, but didn't find the time to add this in 1.3b1

Børge wrote:
More info regarding the changes you have made to the solver from 1.2b1 to 1.3b1 would be very much appreciated.
I am currently testing a beta version of my Samurai generator and decided to switch from using 1.2b1 as the logical solver to using 1.3b1, and there seems to be some changes. The main problem is that I cannot switch forth and back between the two versions because doing so completely ruins my setting of the sequence of solver techniques, and resequencing it takes a good 10 minutes.
The ability to move a block of solving techniques would be great.

Here the JSudoku Solver logs from 1.2b1 and 1.3b1 for the generated Samurai listed at the end:

1.2b1
193 Naked Singles
65 Hidden Singles
10 Intersections

1.3b1
182 Naked Singles
76 Hidden Singles
3 Intersections


On my blog, I wrote:
Improved Intersection and Naked subset solvers to proceed first with most efficient eliminations. First those revealing some naked or hidden single(s). If no single was revealed, they will then proceed to less efficient eliminations

1.2 stops searching at the first Intersection found, so it made some less efficient moves before hitting the key one(s) which unlocks the puzzle.
Whereas 1.3 will continue to search for Intersections until it finds a pattern revealing some single(s). If no single was revealed, it will then choose the most efficient one found, where "efficiency" is based on the number of candidates removed and number of cells changed.
Naked pairs, triplets... use the same principle.
In the future, I may adopt this principle for other solvers which currently stop searching at the first pattern found.

_________________
Jean-Christophe
"When you have eliminated the impossible, whatever remains, however improbable, must be the truth." Sherlock Holmes.


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sun May 04, 2008 9:40 am 
Offline
Expert
Expert

Joined: Sun Apr 27, 2008 10:44 am
Posts: 102
Location: Belgium
Glyn wrote:
Mike Wow A50V2, at last my tryfurcation can be consigned to history.

Proud to announce JSudoku could also solve Ruud's Assassin 68V3. Altough I personally consider the new "Cages Grouping" solver some kind of limited T&E since it doesn't give the reasoning for the eliminations. All it says is "these two cages together -> ..."

Couldn't solve these monsters (not really a surprise)
8) July 27th 2007: Para's Special Killer-X 4V2
9) Aug 1st 2007: Mhparker's Assassin61XV3

Nor this one (which could be solvable some day)
14) January 11, 2008: A85 (original version)

Glyn wrote:
Some way off handling Ronin though, one more Finned Fish and an ALS, but needs those inter-grid chains. Recursively solved with 27 guesses.

I didn't add support for Samurai X yet, so JSudoku does not make use the diagonals. A workaround is to specify the 5 * 4 diagonals as extra groups. I did try so but JSudoku coun't solve it. Note: Recursively Solve reported 21 guesses for me, not 27...

_________________
Jean-Christophe
"When you have eliminated the impossible, whatever remains, however improbable, must be the truth." Sherlock Holmes.


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sun May 04, 2008 10:31 am 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 6:23 am
Posts: 113
Location: Germany
Jean-Christophe wrote:
Altough I personally consider the new "Cages Grouping" solver some kind of limited T&E since it doesn't give the reasoning for the eliminations. All it says is "these two cages together -> ..."

Strangely, the stats for the A50V2 that I posted above show "16 Cages Grouping", but I can't find the words "these two cages together" (or similar) anywhere in the provided solver log... :?

_________________
Cheers,
Mike


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sun May 04, 2008 12:12 pm 
Offline
Grand Master
Grand Master
User avatar

Joined: Mon Apr 21, 2008 10:32 am
Posts: 868
Glyn wrote:
Borge I have run both versions simultaneously, in fact it was the first thing I tried, as I thought JC might have resequenced the order of grid visits for the Clueless Explosion..
I solved this problem. Works when I unzip and install JSudoku.exe on the HD and start it from there, instead of starting it off the zip file, i.e. from within the zip program.


Jean-Christophe wrote:
1) Reason: The set of solvers is different, so they're reset to defaults whenever you switch between 1.2 & 1.3. Sorry, I can't really change this.
I assume that you under Windows save the solver preferences in the registry; cannot find a separate file with them. I haven’t used a Macintosh in years, but I know for sure that UNIX/LINUX does not have a registry; for many years I was a UNIX admin. If you under Mac OS and/or UNIX save the solver preferences in a separate file, please start doing this under Windows also. AND use a separate file for each version, or allow a single file to contain the settings for several versions.

IMNSHO the registry is not good for anything except:
1) Continuously making your PC running slower and slower and ....
2) Giving Malware & Co an easy time.
3) Spying on the user.
4) Making forensic easy.
With the right tools it is unbelievable what kind of information you can find in the registry. Every time you put something into a USB port (especially USB sticks) information is stored in the registry. So if you are not allowed to put a USB stick into your PC at work and then does it; finding it out (even years later) is a piece of cake!

UNIX is a good example of why KISS (Keep It Stupid Simple) is a good principle.
Windows (read Vista) is a brilliant demonstration of why KIUC (Keep It Unnecessary Complicated) in not such a good idea.


Jean-Christophe wrote:
At least, you get a warning message in 1.3 which you do not get in older versions.
AFAIK I have not seen this message :?


Jean-Christophe wrote:
2) Turbot fish will catch 2-String Kites (as well as skyscrapers). 2-String Kite is maybe more common, but harder to spot for a human beeing, so I made it a separate solver. I'll put Remote pairs in my list.
:? Is your anwer that you sometime in the future will add a separate solver for Remote Pairs, but NOT for 2-String Kite?


Jean-Christophe wrote:
1.2 stops searching at the first Intersection found, so it made some less efficient moves before hitting the key one(s) which unlocks the puzzle.
Whereas 1.3 will continue to search for Intersections until it finds a pattern revealing some single(s). If no single was revealed, it will then choose the most efficient one found, where "efficiency" is based on the number of candidates removed and number of cells changed.
Naked pairs, triplets... use the same principle.
In the future, I may adopt this principle for other solvers which currently stop searching at the first pattern found.
I did read your blog BEFORE posting, but wanted some more information, which you now have provided. Thanks a lot :D


Whenever I start JSudoku it always starts generating a puzzle. Any way of preventing this?

_________________
Quis custodiet ipsos custodes?
Normal: [D  Y-m-d,  G:i]     PM->email: [D, d M Y H:i:s]


Top
 Profile  
Reply with quote  
 Post subject: Re: JSudoku
PostPosted: Sun May 04, 2008 12:53 pm 
Offline
Expert
Expert

Joined: Sun Apr 27, 2008 10:44 am
Posts: 102
Location: Belgium
Børge wrote:
Glyn wrote:
Borge I have run both versions simultaneously, in fact it was the first thing I tried, as I thought JC might have resequenced the order of grid visits for the Clueless Explosion..
I solved this problem. Works when I unzip and install JSudoku.exe on the HD and start it from there, instead of starting it off the zip file, i.e. from within the zip program.
The preferences are saved when the program quits. If you run two versions at the same time, changing the preferences for one version will not alter the preferences of the other running version.

Børge wrote:
I assume that you under Windows save the solver preferences in the registry; cannot find a separate file with them.
I do not program under Windows but under Java Runtime Environment. So I use the Java Preferences. I really don't know (nor mind) where and how this is actually stored.

Børge wrote:
Jean-Christophe wrote:
At least, you get a warning message in 1.3 which you do not get in older versions.
AFAIK I have not seen this message :?
I'll have to check this.

Børge wrote:
Jean-Christophe wrote:
2) Turbot fish will catch 2-String Kites (as well as skyscrapers). 2-String Kite is maybe more common, but harder to spot for a human beeing, so I made it a separate solver. I'll put Remote pairs in my list.
:? Is your anwer that you sometime in the future will add a separate solver for Remote Pairs, but NOT for 2-String Kite?
Yes
BTW Was too tired this morning. It should read "so I made skyscraper a separate solver".

Børge wrote:
Whenever I start JSudoku it always starts generating a puzzle. Any way of preventing this?
Not in the current version. I could add an option in the furure (stored in the Preferences ;-) )

_________________
Jean-Christophe
"When you have eliminated the impossible, whatever remains, however improbable, must be the truth." Sherlock Holmes.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 92 posts ]  Go to page 1, 2, 3, 4, 5 ... 10  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group