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)
Este es mi código :) :
Código C++:
Ver original
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] ; } }
Alguna idea de dónde puede estar mi error ?
Gracias :)