Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/03/2015, 04:13
Avatar de anggiebs
anggiebs
 
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 9 meses
Puntos: 0
Busqueda Mover fichas de un tablero

Hola de nuevo :) !
He hecho un procedimiento que mueva fichas hacia la derecha basándome en un array bidimensional de dimensión 4x4. Lo he probado y me funciona pero solo en el caso de las filas 0 y 1 ,en las filas 2 y 3 no .He estado pensando y no encuentro mi error ,podrían ayudarme :) ?

el orden de las filas y columnas va así :
columna: 0 1 2 3
fila 0
fila 1
fila 2
fila 3

Este es mi código :
Código C++:
Ver original
  1. void moverDerecha(tTablero tablero){
  2.  
  3.     bool encontradoValor = false;
  4.  
  5.     for(int fila = 0; fila < N;fila++){
  6.         for(int col = N -1; col > 0; col--){    //El movimiento se realiza de la columna 3 hasta la columna 1.
  7.             if( tablero[fila][col] == VACIO ){  //Si la celda está vacía...
  8.                 int j = col -1; //Entramos en la celda de la columna anterior pero misma fila.
  9.                 while( (j >= 0) && (!encontradoValor) ){    //Mientras no se haya encontrado un valor(!= VACIO) y no se haya llegado hasta la columna 0.
  10.                     if(tablero[fila][j] != VACIO){  //Si la celda de la columna anterior pero misma fila tiene un dato distinto de VACIO...
  11.                         encontradoValor = true;
  12.                         //Intercambio los valores:
  13.                         tablero[fila][col] = tablero[fila][j];
  14.                         tablero[fila][j] = VACIO;
  15.                     }
  16.                     else{   //Paso a analizar si la columna anterior en la misma fila tiene un dato distinto de VACIO.
  17.                         j--;
  18.                     }
  19.                 }
  20.             }
  21.         }
  22.     }
  23. }