Pasando el BUSCAMINAS a c++
Publicado por Fran (1 intervención) el 17/06/2017 21:34:12
Buenas!
Os comento, he intentado recrear el juego del buscaminas en Dev-c++. Ya, se que no se puede interactuar como en java, pero pensé en poner las coordenadas de un array bidimensional con el que se puede interaccionar. El problema está en la comprobación de cuando hay una mina, ya que la lógica del juego está en que cada componente del array, que no es una mina, tiene un número que es igual al nº de bombas que estén circundando ese componente. Así que en la matriz, mediante bucles for anidados, compruebo cada uno de los componentes que circundan al componente a "analizar" , además un contador suma +1 por cada bomba. Entonces como se trata de un array de tipo char (porque llamo a las minas ' X ') luego con el código ASCII lo convierto en el número de bombas. También intenté comprobar cada bomba y sumar +1 al contador de los componentes circundantes, aún así no recoge bien el número de bombas.
Aquí el segundo intento que hice (parte donde tengo problemas) :
La primera que intenté sería comprobar cada componente que rodea al principal. Por ejemplo:
Así hasta rodear los 8 componentes que rodean al m[i][j]
PD: Soy un estudiante que ha terminado 2ºBachillerato y, por tanto, tengo unos conocimientos muy rudimentarios de la programación en C++ y sobretodo en C ya que solo he trabajado en el primero.
Gracias de antemano!
Os comento, he intentado recrear el juego del buscaminas en Dev-c++. Ya, se que no se puede interactuar como en java, pero pensé en poner las coordenadas de un array bidimensional con el que se puede interaccionar. El problema está en la comprobación de cuando hay una mina, ya que la lógica del juego está en que cada componente del array, que no es una mina, tiene un número que es igual al nº de bombas que estén circundando ese componente. Así que en la matriz, mediante bucles for anidados, compruebo cada uno de los componentes que circundan al componente a "analizar" , además un contador suma +1 por cada bomba. Entonces como se trata de un array de tipo char (porque llamo a las minas ' X ') luego con el código ASCII lo convierto en el número de bombas. También intenté comprobar cada bomba y sumar +1 al contador de los componentes circundantes, aún así no recoge bien el número de bombas.
Aquí el segundo intento que hice (parte donde tengo problemas) :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
for(i = 1; i < 4; i++)
{
for(j = 1; j <4; j++)
{
if(m[i][j]=='X') //comprobacion del numero de bombas
{
cont=0;
for(x=-1; x<1; x++)
{
for(y=-1;y<1;y++)
{
m[x][y]=cont++;
m[x][y]=(char)(cont+48);
}
}
}
else if (m[i][j]!='X') { m[i][j]=(char)(cont+48); }
cout<<endl;
}
}
La primera que intenté sería comprobar cada componente que rodea al principal. Por ejemplo:
1
2
3
4
5
6
7
8
9
if( m[i++][j--]='X')
cont++;
if( m[i--][j--]='X')
cont++;
if( m[i--][j]='X')
cont++;
.
.
.
PD: Soy un estudiante que ha terminado 2ºBachillerato y, por tanto, tengo unos conocimientos muy rudimentarios de la programación en C++ y sobretodo en C ya que solo he trabajado en el primero.
Gracias de antemano!
Valora esta pregunta
0