You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
992 B
46 lines
992 B
/** A program to test advisory library */
|
|
|
|
#include "bfield.h"
|
|
#include "headerP.h"
|
|
|
|
#define W 10
|
|
#define H 10
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
long seed = (argc<2 ? time(0) : atoi(argv[1]));
|
|
cout << "seed = " << seed << endl;
|
|
|
|
BaseField f(seed);
|
|
f.reset(W, H, 10);
|
|
|
|
KRandomSequence random(seed);
|
|
Coord c(random.getLong(W), random.getLong(H));
|
|
f.doReveal(c, 0, 0);
|
|
|
|
CoordSet sp;
|
|
AdviseFull::ProbabilityMap pm;
|
|
|
|
AdviseFast::FactSet facts(&f);
|
|
AdviseFull::adviseFull(&facts, &sp, &pm);
|
|
|
|
float pic[H][W];
|
|
|
|
for(uint i=0; i<H; ++i)
|
|
for(uint j=0; j<W; ++j) pic[i][j] = -1; // unknown
|
|
pic[c.second][c.first] = -(int)f.nbMinesAround(c);
|
|
|
|
AdviseFull::ProbabilityMap::iterator pmi;
|
|
for(pmi = pm.begin(); pmi != pm.end(); ++pmi)
|
|
pic[pmi->second.second][pmi->second.first] = pmi->first;
|
|
|
|
TQString s;
|
|
for(uint i=0;i<H;++i) {
|
|
for(uint j=0;j<W;++j)
|
|
cout << s.sprintf("%+.02f ", pic[i][j]).latin1();
|
|
cout << endl;
|
|
}
|
|
|
|
return 0;
|
|
}
|