ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

DonationCoder.com Software > Borland C++ Builder Contest

Demina: a Minesweeper Solver/Helper

<< < (2/6) > >>

TPReal:
Yeah, now I can say i like the program :)

I'd add an option that allows the program to choose one of the fields with least probability of being mined, if nothing is obvious, so that all board can (might) be solved just by pressing Ctrl+Space. And then I'd add an option for auto pressing Ctrl+Space :) as fast as possible...

Also, after making a move, the capture engine could just check those fields that might have changed, if that would make the process faster.

My idea would be also to check probabilities of not only those tiles that are adjacent to open tiles. Let's imagine situation where you have just made the first move, and the number 5 was revealed. Then, the rest of the board has much less probability of not being mined, that these 8 tiles adjacent to this 5. In fact, on Expert mode (16x30, 99 mines) when the only revealed number is 2, then the probability on adjacent tiles is 25%, whereas on the rest of the tiles we have 97/(16*30-9)=21%, so your program advises a bad move! I'm not for covering the whole area with numbers, but I think writing the probability of the unstable tales would be good.

Nice work.
TPReal.

C++Speaker:
Yeah, now I can say i like the program :)
-TPReal (July 25, 2006, 03:18 AM)
--- End quote ---

Thanks  8)

I'd add an option that allows the program to choose one of the fields with least probability of being mined, if nothing is obvious, so that all board can (might) be solved just by pressing Ctrl+Space. And then I'd add an option for auto pressing Ctrl+Space :) as fast as possible...
-TPReal (July 25, 2006, 03:18 AM)
--- End quote ---

Well this is a possibility, but it has been coded to be an helper not a 'solve Saper as fast as possible' tool, for example it also remember all possible configurations it has found and some other information. I like to use it when I'm not able to move forward and then try to understand the moves it suggests.
However I can share the source code, so everyone can even add the features she likes most.

Also, after making a move, the capture engine could just check those fields that might have changed, if that would make the process faster.
-TPReal (July 25, 2006, 03:18 AM)
--- End quote ---

The capture phase is already quite fast, but obviously it can be improved. This can be an improvement.

Let's imagine situation where you have just made the first move, and the number 5 was revealed. Then, the rest of the board has much less probability of not being mined ...
-TPReal (July 25, 2006, 03:18 AM)
--- End quote ---

Good point !  :Thmbsup: Really !

Nice work.
-TPReal (July 25, 2006, 03:18 AM)
--- End quote ---

Many thanks again.

Gianni

C++Speaker:
Here is the source code and an html file explaining some techniques used by the program (the techniques.html file in the techniques directory).

enjoy it !

Gianni

P.S. The program evolved over some attempts and some different (sometimes also wrong) techniques so if the code doesn't seem to cut corners and go straight to the point ... well it's possible.  :-[

As always bugs, suggestions, ideas and so on are welcome !  8)

C++Speaker:
Hi,
Just before going on holydays 8) I want to post a version of the program with a little improvement, some bug-fixes and some new ideas.
The improved part is the final phase.
DemineBDS2006_improved.zip contains some configs: the previous version gives out probs requiring a random click from the user, while this new version can sort things out correctly.

The improvement come from a suggestion made by TPReal  :Thmbsup:

The help.html file with the prog. details all changes and a new version of the Techniques.html file describes the final-phase tecnique just added ;) and another trick previously not explained.

Gianni

As usual enjoy it !

... and good luck to everybody !!!  :D

C++Speaker:
Hallo,
while waiting for contest winners (by the way best wishes to everybody) I want to post an update to my program Demine.

There are some bug-fixes, some improvements, but the most important new feature is the ability to parse and solve a special Minesweeper clone I have coded; I called it DemineExercizer.
With DemineExercizer it is possible to play a configuration again and again (in a sense it can be considered the dynamic counterpart to .min files) and also to create configurations to exercise Demine by hand. With this helper it is possible to debug and improve Demine much more easily.  ;)
I have already used it to improve Demine.

as usual enjoy them.

Gianni

P.S. Suggestions, ideas and so on are welcome.

Good luck to everybody  :Thmbsup: