Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - bjork

#1
Programación C/C++ / Juego Candy Crush
14 Agosto 2014, 00:32 AM
Hola a todos :)
Tengo que hacer el juego Candy Crush en c++.
El array bidimensional tTablero tablero está dentro del struct tJuego juego,así:

typedef struct{
tTablero tablero;
int intentos;
int puntos;
}tJuego;

Al buscar si hay 3 o más elementos iguales en el array bidimensional (juego.tablero[filas][columnas]) tanto en filas como en las columnas,es decir,cuando se forman grupos,tengo que marcar a true estas posiciones en un array bidimensional de booleanos.
He hecho esto pero cuando compruebo en el array bidimensional de booleanos(tArrayBool grupo) si me reconoce los grupos que se han formado,siempre me sale el mismo resultado :

0000011100000111 .... (5 ceros y 3 unos)

Código (cpp) [Seleccionar]


const int FILAS=9;
const int COLUMNAS=9;

[....]

void verGrupos(tJuego juego,tArrayBool grupo){
boolGrupos(grupo);//Inicializo el array bidimensional de booleanos a false.
int cont=1;

for(int f=0; f< FILAS-1;){
for(int c=0; c< COLUMNAS-1; c++){
//Primero comprobar si hay grupos en horizontal
if(juego.tablero[f][c] == juego.tablero[f][c+1]){
cont++;
if(cont >=3){
int i=c;//Asigno el valor de la columna en que me encuentro actualmente a i.
int num=0;
while(cont>num){//Siempre me va comparar con 0.
//Pongo a true la posición en la que estoy;la fila es constante cierto tiempo,lo que varía en cada momento es la columna.
                                                grupo[f][i] = true;
//Disminuyo el contador porque ya he ido poniendo las posiciones anteriores a true en el array de booleanos.
                                               cont--;
//Disminuyo para que vaya a la columna anterior.
                                               i--;
}
}
}
//else
}
f++;
}
//Muestra lo que guarda el array de booleanos.
for(int f=0; f< FILAS-1; f++){
for(int c=0; c< COLUMNAS-1; c++){
cout << grupo[0][c] ;
}
}




Si pueden ayudarme a encontrar el fallo,se lo agradecería :).