jaredforrest / nonocross

A simple nonogram puzzle app for Android
GNU General Public License v3.0
40 stars 9 forks source link

Unique levels not always unique #64

Open Xerono opened 1 year ago

Xerono commented 1 year ago

Version 1.3.4 from F-droid.

I'm mostly playing 10x10 with difficulty 10, and sometimes I get levels without a unique solution (I checked with an online solver). The option for unique solution is active and was never disabled. I can't really reproduce it (as it is with random levels), but I could provide a QR code for such a level.

jaredforrest commented 1 year ago

Could you share the QR code?

Xerono commented 1 year ago

Here's the QR code. I used http://a.teall.info/nonogram/ to check if it's really not solvable. Input is: {"ver":[[1],[2,1],[2,1],[1,2],[3,2],[1,2,2],[5,1,1],[1,2,1,1],[1,2],[1,3,1]],"hor":[[1,1,2,1],[1,5],[1,1,1,2],[1,3,1],[1,3,1],[1],[2],[4,1],[1,3,1],[1]]}

jaredforrest commented 1 year ago

image This is the only solution I could find for this one

mueller-ma commented 1 year ago

I got the same solution as @jaredforrest. @Xerono can you share a different solution for this grid?

johnhargestam commented 1 year ago

IMG_20230802_133900

When you reach this state, there is no longer a move that you can make without taking several rows or columns into account. I also got online solvers to return "multiple solutions" - but without providing any.

I think that the best levels are solvable using simple logic rules, where every move is determined by a specific row or column. It is probably the reason why an online solver reported multiple soultions, because it is not possible to follow simple rules past this point.

mueller-ma commented 1 year ago

Personally I don't see any issue here. For me levels become "good" when I encounter such a situation, so it's harder to solve the level. I think the best way to avoid this is to reduce the difficulty. Difficulty 10 means "most difficult" so making them easier seems wrong to me.

johnhargestam commented 1 year ago

@mueller-ma One could run generated levels through a rule-based solver, as a potential addition to the "Unique" filter. I prefer to just tune out while solving, so I'd put such a filter to 'Exclude' - but to each their own.

I agree that there really is no issue, though.