hi i am new in programming.i want to write a function “minesweeper(int, int, int )” that takes 3 arguments a, b, and p and produces an a-by-b Boolean array where each entry is occupied with probability p (e.g. if the randomly generated number is less than or equal to p, the cell is referred as empty else occupied) . In the minesweeper game, occupied cells represent bombs and empty cells represent safe cells. Print out the array using an asterisk for bombs and a period for safe cells. Then, replace each safe square with the number of neighboring bombs (above, below, left, right, or diagonal).kindly help and guide me

But, have you tried to write some code? Show us what you got.

## All 3 Replies

But, have you tried to write some code? Show us what you got.

i dnt knw wt to do,kindly tell and guide me

So, you need a function with three parameters. The 1st two parameters are the sizes of the matrix, and the last is the probability. I do have some questions related to your project. For instance, do you randomly generate numbers between 0 and 1? From my knowledges of probability, p must take a value between 0 and 1, so I figure, your random number generator should take also values from 0 to 1. If that's the case, than you'll need a `rand()` funtion which would generated double numbers, not ints. For that, here's this:

``````double drand (double low, double high){
return ((double)rand()*(high-low))/(double)RAND_MAX+low;
}
``````

In your case you should use it like `drand (0, 1);`.
Also, you'll need to dynamically allocate a bool matrix of aXb.

``````    bool** matr = new bool* [a];
for (int i=0;i<a;i++) matr[i] = new bool [b];
``````

You'll need to have a number, randomly genedated, and compare it with the probability. Also, this should be done in a loop, so that if the number is lower, to mark the space in the matrix as free (`true`), or as occupied (`false`) if the number is greater. Here's a quick pseudocode:

``````for i from 0 to a do
for j from 0 to b do
num <- randomly generated number between 0 and 1 (using drand)
if num < p then
matr[i][j] <- true
else matr[i][j] <- false
end_if
end_for
end_for
``````

This function will fill up your newly allocated bool matrix with true/false values (free/occupied).
As for the printing part, that's easy:

``````for i from 0 to a do
for j from 0 to b do
if matr[i][j] = true then
print "."
else print "*"
end_if
if j = a-1 then
print new line
end_if
end_for
end_for
``````

These are just some tips for your program. Having them, try to think how you could actually solve your problem. Good luck.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.