Frequently Asked Questions
Q: MineSwee++ 2 "fails to initialize properly" or "can not find mscoree.dll" when starting up.
A: Please download and install .Net Framework 2.0 Redistributable Package.
Q: C[o]re is SOOOOOO stupid! Is there a stronger bot?
A: Currently not; however, if you have any algorithm to contribute or if you want to improve the existing algorithm, you can have get detailed information at Contribute page.
Q: May I use C[o]re.dll in my own program?
A: Yes. Of course, you have to address this usage in your program and on your program website. C[o]re.dll is a 32-bit DLL. Click here for some information you may find useful.
-
The function is declared as following in Visual C++ 2005:
void __stdcall DetermineGrid2(/* in */ char* strMineBoard,
/* out */ float* probabilityMine,
/* out */ float* probabilityZeroMineAround,
/* out */ uint* numValidGen,
/* in */ uint numThread,
/* in */ uint minValidGen,
/* in */ uint timeCalculationMS)
-
strMineboard point to a 256 chars 1D array, transformed in the row-major fashion from the 2D board. An unopened grid is denoted by '-', an flagged-as-mine grid is denoted by '+', and an otherwise opened grid is denoted by '0' to '8'. The array does not need to be null-terminated.
-
probabilityMine and probabilityZeroMineAround point to 256 floats 1D arrays, to be correlated with a 2D board in the row-major fashion. Each element of probabilityMine array stores the probability to contain a mine for the corresponding grid, while each element of probabilityZeroMineAround array stores the probability that the corresponding grid is an expander (i.e. there is no mine around that grid). The space of the arrays has to be allocated by the caller and is advised to be initialized as all zeros. The probabilities range from 0.0 to 1.0, whereas -1.0 specifies the probability is unavailable.
-
numValidGen stores the number of valid boards C[o]re actually generates (see Algorithm page for more information). The space of the variable pointed has to be allocated by the caller.
-
C[o]re always tries a pass of shortcut evaluation to search whether grids definitely to contain mines exist. If so, only the corresponding elements for those grids in probabilityMine will be set 1.0 and the rest -1.0; all elements in probabilityZeroMineAround will be set -1.0; the content of the variable pointed by numValidGen will be undefined.
-
numThread has a max of 32.
-
minValidGen stores the minimum number of valid boards C[o]re should generate before the timespan specified by timeCalculationMS is up.
-
timeCalculationMS is in milliseconds.
-
The function does not do any exception handling and there are no special values to make the caller aware of any error. Passing NULL in pointers may crash the DLL.
Q: I don't know how to play the game.
A: Well, since this game is derived from MSN Zone's Minesweeper Flags game, you can consult Messenger Zone's Minesweeper Flags Help page.
Q: How do I use the Solver?
A: Just input the character in the corresponding grids and click "Solve". The characters accepted are: - for an opened grid, + for a flagged-as-mine grid and 0 to 8 for a grid that is opened with a number shown (if no number is shown, then it's a 0). The solver will calculate the probabilities of the grids and display probability information.
Q: I can't find my problem here. Where else can I get help?
A: You can post your question on the Official Thread.
|