Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/06/2011, 01:39
Tarzan
 
Fecha de Ingreso: noviembre-2005
Ubicación: Alicante (España)
Mensajes: 242
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Encapsulación de objetos

Hola a todos y gracias por responder,

he probado lo que me decís pero sigue sin funcionarme.

Respondiendo a Hemish2000, yo inicializo las variables X e Y de cada casilla en el constructor del tablero. He comprobado que, si hago un getX de la casilla (7,7) me devuelve un 7. Es correcto.

He puesto el & en el getCasilla como me habéis dicho pero sigue sin modificar el tablero.

partida.getTablero().getCasilla(7,7).putJugadorCas illa(true);

Esta sentencia debería modificar la casilla 7,7 y asignar un 1 al booleano jugador de esa casilla. Pero cuando visualizo el tablero no me ha modificado nada.

Si introduzco un 77 en la X de la casilla 0,0, tampoco me modifica nada. Debo estar modificando una copia.

partida.getTablero().getCasilla(7,7).putX(99);
cout << "X vale en la casilla 7,7: " << partida.getTablero().getCasilla(7,7).getX();


Este cout me devuelve que la x vale 7, y ése es el valor que tiene esa casilla cuando creo el tablero, pero si yo le digo que me ponga un 99. ¿Por qué no lo modifica?

He puesto en la cabecera del método un &

Casilla & Tablero::getCasilla(int i, int j) {
return tablero_juego[i][j];
}


¿Qué me falta?