Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Arrays bidimensionales

Estas en el tema de Arrays bidimensionales en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/08/2014, 10:58
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 10 años, 4 meses
Puntos: 0
Pregunta Arrays bidimensionales

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)

Este es mi código :) :

Código C++:
Ver original
  1. const int FILAS=9;
  2. const int COLUMNAS=9;
  3.  
  4. [....]
  5.  
  6. void verGrupos(tJuego juego,tArrayBool grupo){
  7.     boolGrupos(grupo);//Inicializo el array bidimensional de booleanos a false.
  8.     int cont=1;
  9.  
  10.     for(int f=0; f< FILAS-1;){
  11.         for(int c=0; c< COLUMNAS-1; c++){
  12.             //Primero comprobar si hay grupos en horizontal
  13.             if(juego.tablero[f][c] == juego.tablero[f][c+1]){
  14.                 cont++;
  15.                 if(cont >=3){
  16.                     int i=c;//Asigno el valor de la columna en que me encuentro actualmente a i.
  17.                     int num=0;
  18.                     while(cont>num){//Siempre me va comparar con 0.
  19.  //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.
  20.                                                 grupo[f][i] = true;
  21. //Disminuyo el contador porque ya he ido poniendo las posiciones anteriores a true en el array de booleanos.
  22.                                                cont--;
  23. //Disminuyo para que vaya a la columna anterior.
  24.                                                i--;
  25.                     }
  26.                 }
  27.             }
  28.             //else
  29.         }
  30.         f++;
  31.     }
  32. //Muestra lo que guarda el array de booleanos.
  33.     for(int f=0; f< FILAS-1; f++){
  34.         for(int c=0; c< COLUMNAS-1; c++){
  35.             cout << grupo[0][c] ;
  36.         }
  37.     }

Alguna idea de dónde puede estar mi error ?
Gracias :)
  #2 (permalink)  
Antiguo 15/08/2014, 05:47
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 3 meses
Puntos: 83
Respuesta: Arrays bidimensionales

Una cosa, que se supone que hace esta linea (linea 35) ?

Código C:
Ver original
  1. cout << grupo[0][c] ;

Saludos
vosk

Última edición por vosk; 15/08/2014 a las 06:06
  #3 (permalink)  
Antiguo 17/08/2014, 16:20
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Arrays bidimensionales

Hola Vosk :)
Al final me dí cuenta de que me mostraba el mismo resultado justamente por esa línea ,aparte de eso modifiqué parte del código y ya funciona como quería :) .

Gracias por la ayuda de todas maneras ;)

Etiquetas: arreglos, bidimensionales, c++, struct
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:11.