Public highscore list?

7 posts / 0 new
Last post
Nicolas
Offline
Joined: 2006-11-03
Public highscore list?

Hi,

I was wondering if there is some "public" highscore list for Sokoban levels found in Sokoban for Windows online?

Also, a maybe dumb question about highscores: Is it preferable better to have less moves over pushes or vice versa?

E.g. If on a level I have 145 moves and 64 pushes, in another try 148 moves and 62 pushes, in a third try 142 moves and 65 pushes.
Which one is rated on first place?

I'm asking because I found out that the ranks in the internal Sokoban highscore tables are not seeming to have a consequent rule on SOME levels. Maybe this could also be a little bug (I'm using version 2.3 b3).

Anybody has some ideas?

Thanks in advance,
Nicolas

bjorn
Offline
Joined: 2013-04-18

Hi,

there is no public highscore list.

A qoute from the help file:

One score is better than another, if the number of moves is less and the number of pushes is less or equal, or the number of moves is less or equal and the number of pushes is less. This means that two scores can’t be compared if one has fewer moves but more pushes or vice versa. In this case the scores are stored chronologically.

So your example would give the following order:
145 m 64 p
148 m 62 p
142 m 65 p

Nicolas
Offline
Joined: 2006-11-03

One score is better than another, if the number of moves is less and the number of pushes is less or equal, or the number of moves is less or equal and the number of pushes is less. This means that two scores can’t be compared if one has fewer moves but more pushes or vice versa. In this case the scores are stored chronologically.

But this was NOT quite correctly implemented.
I had several tries on some original levels and took screenshots of the scores Sokoban for Windows gave me.

Have a look at Level 6:
IMAGE(http://img238.imageshack.us/img238/6581/scores6gz7.gif)

Here the third score shows LESS moves than the top score AND the number of pushes are EQUAL to the top score.
Therefore it should be rated place 1, nevertheless it is rated place 3.

On Level 2 the algorithm seems to work:
IMAGE(http://img108.imageshack.us/img108/4791/scores2ma6.gif)

On this highscore table all tries seem apparently sorted on number of pusheson the first look.
But I played them in following order (in ranks shown on the pic): 2, 4, 3, 1 and 5.
2 and 4 could not be compared, therefore chronologically.
3 had less moves than 2 and 4, but more pushes than 2 and less than 4. So consequently 3 has been ranked higher than 4 (because for THIS score it was comparable better), but for 2 there was no comparison possible because of more moves.
1 had best moves AND pushes, therefore playced on top.
5 could not be compared to any score because of highest number of pushes.
So here the algorithmn works exactly as it should be.

Can you explain this?

bjorn
Offline
Joined: 2013-04-18

Hi,

this is definitely a bug. I have fond it and it will be corrected shortly. The problem was that I used a binary search to find the position for a new score. The binary search fails when the compared score is neither higher nor lower than the one to insert. A linear search method has to be used.

Thanx for reporting this.

/Björn

Matthias
Offline
Joined: 2006-09-03

Hello Nicolas.

"I was wondering if there is some "public" highscore list for Sokoban levels found in Sokoban for Windows online?

Also, a maybe dumb question about highscores: Is it preferable better to have less moves over pushes or vice versa?"

You can find the current world records of many levels at www.sokobano.de
There are both types of solutions: Move optimized solutions and push optimized solutions.

Matthias

Nicolas
Offline
Joined: 2006-11-03

Thanks Björn for your quick reply!
And thanks Matthias, i found sokobano.de two days ago already Smile

Björn, I have a proposal for the highscore table:
Why not dividing the highscore table in two parts: Best moves highscores / best pushes highscores.
I think this should not be too difficult to implement (please correct me if i am wrong!) and would be an additional challenge for some players.
This would also solve the little bit confusing thing about incomparable and therefore chronologically stored scores.

I imagine it could work like this:
The first time a solution is found (164m/78p), the score will be entered in both tables.
If in a second try you improve moves AND pushes (161m/76p), this score is new top on both tables.
Then, in a third try you get less moves but more pushes (159m/79p), you get place 1 on the move highscore table, but last place on the pushes table.

Best Moves highscores
1. 159m 79p
2. 161m 76p
3. 164m 78p
Best Pushes highscores
1. 161m 76p
2. 164m 78p
3. 159m 79p

What do you think?

Best regards,
Nicolas

bjorn
Offline
Joined: 2013-04-18

Good idea! I'll give it some thought.

Björn