Consulta de código de switch para seleccionar una posición de la matriz de datos

Hola que tal, quisiera saber si puedo hacer regresar a una linea de código,,,
por ejemplo
if (t!=3){
    cout<<"Lanzamiento Jugador"<<endl;
    cin>>l1;
    switch(l1){        
            case 1: m[0][0] = 1;break;
            case 2: m[0][1] = 1;break;
            case 3: m[0][2] = 1;break;
            case 4: m[1][0] = 1;break;
            case 5: m[1][1] = 1;break;
            case 6: m[1][2] = 1;break;
            case 7: m[2][0] = 1;break;
            case 8: m[2][1] = 1;break;
            case 9: m[2][2] = 1;break;
    }
    }
Entonces mi código dice, que lance el jugador, si el digita el cualquier numero de 1 a 9, me lo va a cargar en la matriz según su posición, pero si la posición ya esta llena, como podría hacer para que no la cargue si no vuelva a pedir el valor,,,
Saldos.
Respuesta
1
Pues antes que nada deberías inicializar la matriz m a 0, es decir, al empezar el programa el siguiente código:
//arriba del todo, en la declaración de variables globales:
int i,j,pedirValor;
//Justo al empezar la función main
for(i=0;i<3;i++)
  for(j=0;j<3;j++)
    m[j]=0;
y luego en el código que me has enseñado, pues deberías hacer lo siguiente:
if (t!=3){
  pedirValor==1;
  while(pedirValor){
    cout<<"Lanzamiento Jugador"<<endl;
    cin>>l1;
    switch(l1){        
            case 1: if(m[0][0] == 0){m[0][0]=1;pedirValor=0};break;
            case 2: if(m[0][1] == 0){m[0][1]=1;pedirValor=0};break;
            case 3: if(m[0][2] == 0){m[0][2]=1;pedirValor=0};break;
            case 4: if(m[1][0] == 0){m[1][0]=1;pedirValor=0};break;
            case 5: if(m[1][1] == 0){m[1][1]=1;pedirValor=0};break;
            case 6: if(m[1][2] == 0){m[1][2]=1;pedirValor=0};break;
            case 7: if(m[2][0] == 0){m[2][0]=1;pedirValor=0};break;
            case 8: if(m[2][1] == 0){m[2][1]=1;pedirValor=0};break;
            case 9: if(m[2][2] == 0){m[2][2]=1;pedirValor=0};break;
    }   
  }
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas