Minesweeper – Busca minas

Minesweeper es uno de los cientos de problemas de la ACM, la idea es basicamente elaborar un programa que resuelva o simule ej juego del buscaminas. Pueden ver los detalles del problema en esta pagina: http://acm.uva.es/p/v101/10189.html

El problema planteado solamente tiene una entrada simple, pero pueda que la solución que estén elaborando no contemple todas las posibilidades. Para ello implementé un programita en c++ para generar entradas de ejemplo para el programa que estén desarrollando del tamaño que se indique, puede serles de mucha utilidad para testear sus programas.

#include <iostream.h>
int main(int argc, char* argv[])
{
    if(argc < 3)
    {
       cout<<"\nUso:\t"<<argv[0]<<" [N] [M] ";
       return 1;
    }

    int n = atoi(argv[1]);
    int m = atoi(argv[2]);
    cout<<n<<" "<<m<<endl;
    for(int i = 0; i < n ;i++)
    {
       for(int j = 0; j < m ;j++)
       {
          if(rand()%14 == 0)
          {
             cout<<"*";
          }else
          {
             cout<<".";
          }
       }
       cout<<endl;
    }
   cout<<"0 0";
	return 0;
}

El programa produce la siguiente salida.

15 30
...............*.....*........
.*.....*......................
.................*.*...*......
...*.......*.*.....*..........
....................*.........
.............*...............*
........*.................*...
*.....*...*........*..........
..............*....*......*...
.*............................
.........*..........*.........
.......*.*....................
................*.............
..*.*....*....*..*.........*..
..............................
0 0

La salida de sus soluciones debería ser como sigue:

Field #1:
111000111000001*10001*10000000
1*10001*1000001121212121100000
11211011101121101*3*201*100000
001*1000001*2*10113*3111100000
00111000001132200012*100000011
0000000111001*100001110001111*
11000112*21111100011100001*111
*10001*212*10111002*2000022200
22100111011101*1002*200001*100
1*1000001110011100122100011100
111000113*2000000001*100000000
0000001*3*20000111011100000000
0112111132200112*2100000001110
01*2*1001*1001*22*100000001*10
011211001110011111100000001110

Si necesitas alguna ayuda adicional puedes consultarla en el foro de programación c++.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.