sgtpuzzles
sgtpuzzles copied to clipboard
NEW GAME: Rectify Sudoku
Community request:
Please do NOT suggest me to post this to upstream to sgtatham. You are welcome to take this initiative on your own.
Summary:
A sudoku grid (aka solo), fully filled but with some errors will be given. The player has to rectify it.
- Constraints: "number of cells changed", and "certainly correct" cells
Interface:
- Show count: "left errors" (similar to mines count in mine-sweaper)
- Show count: "cells changed" (update only once per cell, not one per turn)
- Highlight changed cells
Option:
- Number of errors: Unsigned_Int (it has to be constrained/bound, as high enough number will result in multiple possible solutions)
- Difficulty:
- Highlight errors: Bool
- Show Certainly Correct: Bool These should be treated as hints (hence, True will ease the difficuly), and only those hints should be given which can't be used standalone to complete the sudoku from scratch. That is, the hints should NOT suffice on their own as a standalone sudoku (otherwise, what's the point), and should result in multiple possible solutions.
Technical details (bird eye view):
- Without "Certains", it's fairly simple: take any solution of sudoku, and replace some of its digits with other ones (i.e. making some digits to repeat)
- With "Certains" hint on, it can be that take a generated sudoku puzzle, remove some of prefilled digits such that solution no longer stays single possibility, take one of it's solution, then replace some of its digits .... (rest is same as above)
Addendum: Well, some certains will have to be there, otherwise one can just change all the cells. So, what can be done is to enable showing of certains as hint or not.
Errors types:
There can be multiple error types in sudoku (these feel similar to defects in crystal lattice lol):
On basis of causes:
- Error by swaps
- Error by overwrites
On basis of affected component:
- Error in 1D: think: errors in pairs such that all blocks are valid, but only 1dimensional (row/column) has error.
- Error in internal block think: the normal sudoku without internal 3x3 blocks - they essentially have this type of error everywhere
- Error: combination (ofcourse)
Backstory:
- So, i was solving this sudoku with pen and paper, and while checking it (manually ofc), i found 2 blunders.
- I tried rectifying it in place, and HA! not an easy task.
- I thought, ohhh, i don't remember my solving history - so, i can't backtrack.
- ... So, i'll have to solve it again.
But then:
- i thought, what if i didn't know which numbers came pre-filled, and which ones were filled by me. And all i have at my disposal was this wrongly filled sudoku grid. That would be a nice challenge on its own.
- And it's more suited to digital medium (as against pen/paper) as it requires multiple trial and errors which are not very easy on paper.
This resulted me being here with this suggestion
Please direct this request upstream to Simon: anakin[at]pobox[dot]com
self hiding as pasted in other issue
ANDDD.... i deciphered the game description id for solo game (#510):
2x2: a 3e 3_ 1e 2a spaces added by me just for clarity
In BNF, it would be:
STATEMENTS
<game_description> := <size>:<terminal_blank><other_cell_description>
<size> := <digit>x<digit>
<other_cell_description> := <cell_description> [ no. of given digits times ]
<cell_description> := <digit><blanks_with_next_digit>
<blanks_with_next_digit> := if not last cell then <digit_blank> else <terminal_blank>
LITERALS
<digit_blank> := <lower_alphabet> | <underscore>
<terminal_blank> := <lower_alphabet> | <nothing>
OBVIOUS LITERALS
digit
lower_alphabet
underscore
nothing
The resulting erraneous sudoku is shared below (rule violation highlighed in eclipse):
Find if you can fix it ;) 😋
As can be seen, this mistake is only in 1D, as all the sub-blocks are all valid.

@goyalyashpal this project is a port of Simon's Puzzels - @chrisboyle has previously stated:
this project is actually a port; Simon Tatham still maintains the original collection for other platforms and I try to remain consistent with that
Please do not ask us to post your suggestions to Simon because you have either had a bad experience or cannot be bothered to do it yourself.
Please direct this request upstream to Simon: anakin[at]pobox[dot]com
@JonnyTech Please do NOT suggest me to post this to upstream to sgtatham. You are welcome to take this initiative on your own.
Please do not ask us to post your suggestions to Simon ...
I am not asking you to do this. I am saying DO NOT suggest me to.
... because you have either had a bad experience or cannot be bothered to do it yourself.
i am bothering enough to figure stuff out, and post them in detailed format here - so that ANYONE, and not JUST simontathem can follow it at will, while you are just sitting ordering people.
Look at yourself, don't lecture me.
also read:
To be fair, Simon is very busy, and gets surely a lot of mail. ...
- @ stbuehler at https://github.com/chrisboyle/sgtpuzzles/issues/596#issuecomment-1485203463
Just to clarify my intentions with this port: I intend this to be a port of the upstream puzzles, with user interface additions to make it easy to play those puzzles on Android. I do not currently plan to add or accept any new puzzles or major gameplay additions just to the Android port, without them first appearing upstream. If the upstream project becomes inactive, then I would rethink that approach, but it's still very much active (Simon committed a couple of days ago).
I also don't plan to put my own development effort into new puzzles / new gameplay additions myself any time soon, because I think my time is better spent improving the Android user-interface and fixing other aspects that truly need to be Android-specific.
I'm aware that Simon upstream doesn't appear to have a public bug tracker, and therefore I have no problem with people using this bug tracker to discuss and coordinate work among themselves that, bearing the above in mind, is destined for upstream initially, whether they're going to submit it themselves or someone else is going to submit it - but please be polite to each other.
I'm aware that Simon upstream doesn't appear to have a public bug tracker, and therefore I have no problem with people using this bug tracker to discuss and coordinate work
thanks chris for chiming in, i knew from within that you'll be having this stance.
and i was not saying anything to anyone, but ppl here are feeling entitled, like somehow they know things better or have authority of where issues belong.
- i have faced this supposed "course correction" lecture 5 times now,
- out of which 3 were entitled replies
- and this person was in charge for 4 out of 5 of them.
- i have given polite explanations 2 or 3 times already,
- tried giving settling period 4 times already (one foresight notice, one ignore, one notice in this issue, one one-liner reply to allow them to retract),
all this BEFORE my last reply to this issue,
what more can i do to keep things polite.
Citations:
This request should be targeted upstream to Simon: anakin[at]pobox[dot]com JonnyTech 2022.09.22 https://github.com/chrisboyle/sgtpuzzles/issues/564#issuecomment-1245960468
You don't understand ... DAM091 2022.10.07 https://github.com/chrisboyle/sgtpuzzles/issues/564#issuecomment-1271583375
You should submit this upstream, directly to Simon. JonnyTech 2023.03.19 https://github.com/chrisboyle/sgtpuzzles/issues/594#issuecomment-1475223558
Please direct this request upstream to Simon: anakin[at]pobox[dot]com JonnyTech 2023.05.01 https://github.com/chrisboyle/sgtpuzzles/issues/603#issuecomment-1529491834
Please do not ask us to post your suggestions to Simon because you have either had a bad experience or cannot be bothered to do it yourself. JonnyTech 2023.05.01 https://github.com/chrisboyle/sgtpuzzles/issues/603#issuecomment-1529503639
2023.05.02/03: I don't want to create a new comment, so, addressing only the key points in the reply here itself:
I notice that you have edited some of your previous comments which, now that I have noticed them, make my replies seem unjust.
i deleted (but moved it verbatim to a later comment) only one of my previous comment on this matter - as i didn't want this offtopic matter to get mingled with the detailing of main issue at hand.
as for the aplogy, well, its totally ohkay. as long as it doesn't happen again.
@goyalyashpal I sincerely apologise if you consider my remarks rude, it was not intended. I do not look at who posted the issues, just trying to help triage them. I notice that you have edited some of your previous comments which, now that I have noticed them, make my replies seem unjust. I hope that our exchanges have not upset you or discouraged you from posting further, your points are valid, just IMHO not for this port. I shall refrain from replying here further.
I want to discuss the puzzle you're suggesting: a full grid, with N solved cells (and you know N), and the challenge is to alter cells until all cells are correct.
First step in solving would be to determine which cells are correct, by editing cells, and seeing if the number of solved cells goes down (or even better if it goes up!)
Then you have to remember which cells are correct, unless you have a way of marking the cells which you know are correct.
Marking cells known as correct would preferably be automito avoid having to go across the whole grid editing cells arbitrarily to see if they are already correct.
In which case, you start off with a sudoku puzzle with parts that you do know are correct, and parts that you know are not correct. Then you can ignore the not-correct ones and solve as a normal sudoku. So I don't see the appeal of this game type.
Well, you know that much already. But if you turn certains clues off, then you basically have a blank slate. Someone could come up with a solution, but it could be a wrong one. Basically you're asking them to come up with the one solution you want them to come when there could be thousands of possible ones, with no indication of which solution they should be aiming for.
As such I don't think this is a good puzzle to add.
Actually, I do have an idea, where you start with a sudoku grid filled as suggested with no "certains" clues, but any valid solution is accepted. And the challenge is to do that in as few swaps as possible. It would be a bit like the fill puzzle or that one where you have to roll the cube around.
any valid solution is accepted
good point
And the challenge is to do that in as few swaps as possible.
yep, i was also thinking same with [Constraints: "number of cells changed", and "certainly correct" cells] and [Interface: Show count: "cells changed" (update only once per cell, not one per turn)"]
yeah, my current line of thinking is same - that as of now, it is not constrained meaningfully and sufficiently...
maybe bounding this swaps/change count with some number particular to the generated seed (as against loosely keeping low) can make the constraint more rigid and more tangible?
also, the correction steps can also be 2 types - corresponding to the error type:
- swaps: in case the puzzle contain all the numbers in correct amount (like example shown above)
- overwrites: in case there's an imbalance in amount of numbers
Taking example of shared above pic, only 6 & 8 are bad. So, all others should stay fixed (i think) - but that too, makes it:
- "unfair" (i think) in sgt's criterion for choosing a game i.e. there's no way to "know" from skill about which swaps are correct or not, and hence also
- very mechanical
lol, i always say:
key requirement in making most things working is to get the constraints right
too loose, and it doesnt work; too rigid and it looses flexibility
i will try to gather more samples for such erraneous sudoku puzzles (by trying to be careless at one/two places while solving lol) -
i think only then i (and hopefully others too) would be able to gain some insights on what might be different ways to constraint it, and then pick from there on
i think that blatantly artificial swaps/overwrites can make the brain conscious and the errors may very well be limited in scope. or even result in locked states.
I think this is in the same situation as #596 so I am likewise going to close it