Advertisement

Maximising Score Algorithm

Started by April 05, 2006 03:53 AM
14 comments, last by Timkin 18 years, 7 months ago
Can anyone verify my best game on that grid? Coordinates (1,1) correspond to the top left corner.

(1,3) (4,9) (6,2) (4,10) (3,9) (8,2) (14,9) (10,6) (1,7) (5,9) (15,4) (14,8) (10,5) (6,6) (10,7) (16,7) (11,6) (2,7) (1,8) (3,8) (12,9) (16,6) (10,9) (15,10) (3,8) (12,4) (9,8) (5,10) (11,5) (13,10) (8,5) (10,9) (10,9) (11,9) (11,9) (9,10) (13,7) (10,8) (4,9) (10,9) (7,5) (1,7) (2,9) (6,8) (4,10) (3,10) (3,10) (4,9) (1,10)
score: 1892
Sorry alvaro, I got lost on your fifth move, I could not see how i could make the move (3,9). Just had a thought, why not put up my test program so far so here it is:

http://www.cash-inn.co.uk/blocks.zip

Click the test button to have a go at clicking the blocks for yourself, click the solve button to have the program attempt to auto solve the test grid. Note that the number counting up in 100's is how many attempts the solver has had at finding the best option and the high score label below that is the best score that has been found for that pass. This resets 8 times to allow for a different number of moves on each pass (the first pass we only search with two move options at each grid state, second with 3, third with 4 etc...) This so far has been the most favourable way of doing things as the way I assign possible moves means that the best moves are often one of the first 5 assigned, if that makes any sense at all.

For the test grid now I get scores of around 2348 although I believe a score of over 3500 is possible

thanks again for everybodys help so far
Advertisement
Well, I didn't realize your blocks "fall" to the left as well. In my interpretation of the game, blocks only fall downwards. Actually, I think I have played that game before.

I'll modify my code tonight to deal with the "falling to the left" rule.

EDIT: Now that I reread your posts, you did say that blocks fall to the left after they fall down. My fault.
I also misunderstood. In the game I work on, sliding horizontally only happens when the column is completely cleared. The columns slide as a unit. Vertically stacked blocks can not be seperated. This does not mean writing a program to solve your game is any harder, but for the human it is more difficult. Each move in your game changes the position of more blocks. Your game is more dynamic.

I would recommend you have more than one test board. If you concentrate too much on one game board, your program could end up optimized for that one board and play others poorly.
very sorry for not being more clear about the game, I also have the option of making random boards at the moment which get similar scores to the test board so I think I wont have a problem there. Am going to try and get my head around the branch and bound technique and see if this improves the score or not.
Quote: Original post by Andrew2110
Thanks for your post timkin. There is one slight difference between my implementation and yours in that when squares are clicked on, the blocks above the column are shifted downwards to fill the blank, and then the blocks to the right are shifted left to fill blanks.


That's actually what I meant. My apologies if it wasn't clear from what I wrote.

This topic is closed to new replies.

Advertisement