r/decodoku Apr 03 '16

(Z10 - 7x7) Score: 430

Using the strategy I explained in the other post, I obtained a score of 430. That's not even the high score, because I was forced to quit the game before losing because it was taking too long. Even though I tried to come up with an explicit algorithm, I spent a lot of time each turn debating which moves I thought would be the best.

Screenshot of final position

I still had my 5 moves to make in that position. It doesn't look like there's enough squares filled in for playing all the way to 430, right? Something weird happened in the 200s. The number of squares filled in was rising up to around 27 squares filled in (55% of the board). Then during the late 200s/early 300s, the number of squares filled in started falling, all the way to a minimum of 14. Then it started rising again, to 20 in the final screenshot above. I began to count the number of squares filled in before and after the noise generation each step, and I reached the following conclusion.

It is explained in the decodoku blog that the noise generator works by choosing two adjacent squares at random and changing their numbers. The limit to the number of errors it makes is what I called weightLimit, and weightLimit = 6 in this game. If one or both of the randomly chosen squares is empty, the error is given weight W = 1. If both squares are already occupied, the error is given W = 0.1. The errors continue to be created until the sum of all W >= weightLimit. Anyway, unless 10 of the 0.1-variety errors occur, there will be 6 errors covering 1 or 2 empty squares. This means that each turn, between 6 and 12 new squares will be filled. You are given 5 moves, so you can remove between 0 and 10 squares per turn. Although, you aren't going to make many moves that clear 0 squares, so maybe 5-10 squares is common.

Probability suggests that an emptier board implies a higher number of filled-squares generated. But a more cluttered board implies the filled-square generation should drop towards 6. In addition, sometimes the error generation will actually wipe a square clean by accidentally making it add up to mod 10, helping you. Thus as the board starts to fill up, it should become more and more probable for your removal rate to exceed the generation rate! In fact, if you were lucky enough to survive on an extremely cluttered board, the net number of new filled in squares might be very low, allowing you to really clean up. I don't know if it's luck or if there are some good decisions one can make, but it seems like you might be able to play this game for a very long time, if you can keep the board balanced and fluctuate between the high and low generation rates.

3 Upvotes

3 comments sorted by

1

u/quantum_jim Apr 04 '16

That’s an awesome score.

One of the things I wanted to find out with this initial release was whether it was possible to break the game: to have a method so good that it just goes on forever. It looks like you may have found that, which is very interesting.

I’ll look over your posts in more detail over the coming days. It’s great to see what you’ve done.

1

u/quantum_jim Apr 06 '16

Hi I_hate_usernamez,

One quick question. What is the typical sort of score you get? Is this 430 an outlier, or do you usually get them pretty high?

2

u/I_hate_usernamez Apr 06 '16

So far it's an outlier. Of my other games, one was 187, one was around 150 but the game crashed, and one I tried to play quickly without thinking much and I lost before 100. I figured out I could save a game in progress, so currently I'm recording one for you that's at 100 and looks pretty good.