SudokuSolver Forum

A forum for Sudoku enthusiasts to share puzzles, techniques and software
It is currently Thu Apr 18, 2024 12:29 am

All times are UTC




Post new topic Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Sun Jul 13, 2008 12:03 pm 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 6:23 am
Posts: 113
Location: Germany
Hi folks,

can anyone tell me how one can manually remove cage combinations in JSudoku? I can see options there for manually toggling candidates ("possibilities") and setting cell values, but nothing regarding editing cage combos. Am I blind, or is it really the case that such an option doesn't exist?!

Thanks in advance for any assistance.

_________________
Cheers,
Mike


Top
 Profile  
Reply with quote  
PostPosted: Sun Jul 13, 2008 5:12 pm 
Offline
Expert
Expert

Joined: Sun Apr 27, 2008 10:44 am
Posts: 102
Location: Belgium
Hi,
There is no such option in JSudoku.

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


Top
 Profile  
Reply with quote  
PostPosted: Sun Jul 13, 2008 9:16 pm 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 6:23 am
Posts: 113
Location: Germany
Jean-Christophe wrote:
Hi,
There is no such option in JSudoku.

Thanks for the brief (but nevertheless informative) answer!

I suspected that would be the case, but had hoped that there would be some backdoor.

Once again, many thanks for all the work you've put into your software, and for making it freely available for us to use. Much appreciated.

_________________
Cheers,
Mike


Top
 Profile  
Reply with quote  
PostPosted: Wed Jul 16, 2008 7:13 pm 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 6:23 am
Posts: 113
Location: Germany
Just for info:

BTW, the reason I was asking about this is that I was doing a side-by-side comparison of JSudoku (JS) and SudokuSolver (SS) on a puzzle that SS found much easier than JS did. Although SS scored the puzzle at "only" 1.39, JS could only complete it using (in addition to numerous non-trivial, non-chain moves) no less than 1 Skyscraper, 2 Grouped Turbot Fishes, 5 XY-X-Chains up to 3 links, 1 Grouped XY-Chains up to 3 links and 24 Complex XY-Chains up to 3 links! :shock:

Whilst performing the direct comparison, I noticed that SS was able to make an elimination of a combination that JS missed. Therefore, I was hoping to at least be able to eliminate the combo manually, which was unfortunately not possible. Thus, I couldn't re-synchronize the puzzle state in both solvers in order to check for possible further differences.

The lack of this feature is also a disadvantage when trying to use JSudoku to follow someone else's walkthrough. It's common in our WTs for the WT author to eliminate cage combos, as well as just candidates. If one can't make the corresponding steps in JS, it's more awkward to use the software to explore alternative solving paths from any particular point in the WT.

Therefore, if you could add this request to your "to do" list, Jean-Christophe, I'd be very grateful!

_________________
Cheers,
Mike


Top
 Profile  
Reply with quote  
PostPosted: Wed Jul 16, 2008 10:51 pm 
Offline
Grand Master
Grand Master
User avatar

Joined: Mon Apr 21, 2008 10:32 am
Posts: 868
As I have written elsewhere in this forum I use JSudoku as the logical solver when creating puzzles. Lately I have looked into also using SudokuSolver, mainly for creating puzzle variants not supported by JSudoku, like Shogun and Shaolin. My impression is that SudokuSolver has more techniques than JSudoku for solving killers, but that JSudoku has more techniques than SudokuSolver for solving standard Sudokus.

I have scored all my Apprentice level puzzles with SudokuSolver and it sometimes uses (several) Empty Rectangles not required to solve these puzzles. All Apprentice level puzzles are solvable using Intersections and Naked/Hidden Subsets only.

SudokuSolver also uses far more Intersections and N/H Subsets than JSudoku, and N/H Subsets where JSudoku requires none, but here I think that SudokuSolver actually comes closer to a human solving approach than JSudoku.

_________________
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  
PostPosted: Thu Jul 17, 2008 2:24 am 
Offline
Grand Master
Grand Master
User avatar

Joined: Wed Apr 23, 2008 5:29 am
Posts: 302
Location: Sydney, Australia
mhparker wrote:
The lack of this feature is also a disadvantage when trying to use JSudoku to follow someone else's walkthrough. It's common in our WTs for the WT author to eliminate cage combos, as well as just candidates. If one can't make the corresponding steps in JS, it's more awkward to use the software to explore alternative solving paths from any particular point in the WT.

When I use JSudoku to follow the WT of somebody else I never find any difficulty. To update the "cage combos" I merely select all the cells in that cage, then move the mouse cursor outside the grid and use the "Shift-number" keyboard shortcut to eliminate certain candidates. For example, I have a 11(3) cage with all cells from {1245789} and know that a 4 is locked in there. From mental calculation I know the only possible combo must be {245}, so I select all cells in that cage and move the cursor out and then press and hold the Shift key while pressing 1,7,8,9. Takes only half a second to do. :ugeek:

ETA: Just realised what you mean by "cage combo". For example if a 11/3 cage can be {128|137} you want the program to know that not only 1 must be locked in the cage, but also it can't be {123|127|138|178} etc. Well I have a feeling the program does know this fact when it performs certain "complex subsets" moves but you can't explicitly see. So it's up to JC to make this an explicit feature. :geek:

_________________
ADYFNC HJPLI BVSM GgK Oa m


Top
 Profile  
Reply with quote  
PostPosted: Thu Jul 17, 2008 4:13 am 
Offline
Expert
Expert

Joined: Sun Apr 27, 2008 10:44 am
Posts: 102
Location: Belgium
mhparker wrote:
Whilst performing the direct comparison, I noticed that SS was able to make an elimination of a combination that JS missed. Therefore, I was hoping to at least be able to eliminate the combo manually, which was unfortunately not possible. Thus, I couldn't re-synchronize the puzzle state in both solvers in order to check for possible further differences.

The lack of this feature is also a disadvantage when trying to use JSudoku to follow someone else's walkthrough. It's common in our WTs for the WT author to eliminate cage combos, as well as just candidates. If one can't make the corresponding steps in JS, it's more awkward to use the software to explore alternative solving paths from any particular point in the WT.

Therefore, if you could add this request to your "to do" list, Jean-Christophe, I'd be very grateful!

I should have explained it isn't supported in JSudoku because it does not enable/disable combos for cages. Indeed, combos are just consequence of the set of constraints over the cells. The combos are rebuild from scratch whenever some change is made for a cage: solving a cell, adding/removing a candidate, adding/removing constraints...

There may be several given constraints for some set of cells. eg killer + twin-killer+ non-consecutive + anti-chess + bossdoku + renban + kenken (to come soon) + whatever-crazy-constraint-I-might-support! Some constraints are created by solving techniques like innies/outies (split cages), complex hidden pairs (cells={X|Y..}), conflicting combos (cells<>{XY..}), complex XY chains (cells<>{XY..} and cells={X|~Y..}), LoL ({cells}={cells})... It's even used for some naked subsets (cells={XYZ}), unique rectangles (UR:...)... All these constraints are listed in the "Select" sub-menu of the contextual popup menu.

If the move is "productive", you may remove the candidate(s) from the cell(s) as Udosuk explained. BTW one do not have to move the mouse out of the grid anymore.
You may also use alt-right-click to "Update Combinations: Cage..."
You may also select cells spanning several cages and alt-right-click to "Update Combinations: Selected cells". This is basically what "Cages grouping" does.

If the move is "non-productive", it cannot really help since no candidate is removed from the cells. Someday I could add a way to manually specify invalid combos... The logic is already in the software (eg conflicting combos), but there is currently no user interface to let you add such constraint.

PS you may have noticed JS will first make "productive" moves as you suggested here.

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


Top
 Profile  
Reply with quote  
PostPosted: Mon Jul 21, 2008 6:53 pm 
Offline
Expert
Expert

Joined: Mon Apr 21, 2008 6:23 am
Posts: 113
Location: Germany
udosuk wrote:
ETA: Just realised what you mean by "cage combo". For example if a 11/3 cage can be {128|137} you want the program to know that not only 1 must be locked in the cage, but also it can't be {123|127|138|178} etc.

In the specific example that prompted me to make the post, it was a 17(4) cage, with remaining combinations {1349/1358/1457/2348/2357/2456}, of which SudokuSolver was able to remove {2348}. However, I couldn't in this case indirectly remove this combination by eliminating a candidate, because all 4 digits of {2348} are present in at least one of the other combinations I've just listed.

Although such a move is not productive in terms of removing candidates, without the {2348}, the cage must now have 1 of {15/59}, opening up the potential for killer pairs, conflicting combinations, etc., not present with the {2348} combo.

Jean-Christophe wrote:
I should have explained it isn't supported in JSudoku because it does not enable/disable combos for cages. Indeed, combos are just consequence of the set of constraints over the cells. The combos are rebuild from scratch whenever some change is made for a cage: solving a cell, adding/removing a candidate, adding/removing constraints...

I understand what you're saying, but the rebuilding of combos from scratch does not need to preclude explicit disablement/enablement of cage combinations by the user. It just means that the manually disabled combinations would also need to be stored as constraints. For example, the explicitly disabled combinations for a particular cage could simply be stored internally in a filter list associated with that cage. Then, each time the available combinations are re-computed, not only are the implicit constraints originating from the solving engine taken into acount, but also any combinations explicitly disabled by the user (as contained in the filter list) are excluded. If any combination is re-enabled, it simply needs to be removed from the filter list.

Jean-Christophe wrote:
PS you may have noticed JS will first make "productive" moves as you suggested here.

Thanks for the info (as well as the tip re: "hidden" "Update combinations..." option). I hadn't noticed it, but I'll go away and check now as to whether I'm using a recent enough version.

BTW, I amazed as to how many weird and wonderful Sudoku variants you manage to support in one piece of software. No wonder udosuk is a big JSudoku fan! :)

_________________
Cheers,
Mike


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


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