Mi problema es que estoy haciendo un función en la que se utilizan las teclas W,A,S,D para moverse por un tablero. La cosa viene cuando intento hacer que al pulsar la telca T salga del programa ( como un boton para salir del juego). Seria facil si la funcion en el main no estuviera dentro de un bucle que le obliga a seguir jugando hasta que la condicon de terminar sea verdadera por medio de otra funcion que revisa si ha terminado el juego. Mi idea era poner algun system () como los system ("pause") pero algo que fuera system ("exit") o algo. Sino tendre que cambiar la funcion para que sea un bool o añadir mas parametros y seria tedioso y bastante largo.
Les comparto la funcion por si les sirve de algo ( recuerden que esta dentro de un while). Ignoren todso los case excepto el case T:
Código:
void EditVector (int ** tablero ,int numfil,int numcol) // en nuestro juego te puedes mover usando las teclas W,A,S,D lo cual nos parece mucho mas comodo
{
char d;
int i,j,aux,j2,f,c;
//system("cls");
for(i=0; i<numfil;i++)
for(j=0;j<numcol;j++)
{
if(tablero[i][j]==0)
{
f=i;
c=j;
}
}
cout<<"Su posicion actual es: ";
cout<<f<<" "<<c<<endl;
cout<<"Utilize las teclas W,A,S,D para mover el espacio por el tablero."<<endl;
cin>>d;
switch (d)
{
case 'w': case 'W':
if (f==0)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=f-1;
aux=tablero[j2][c];
tablero[f][c]=aux;
tablero[j2][c]=0;
break;
case 's': case 'S':
if (f==numcol-1)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=f+1;
aux=tablero[j2][c];
tablero[f][c]=aux;
tablero[j2][c]=0;
break;
case 'a': case 'A':
if (c==0)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=c-1;
aux=tablero[f][j2];
tablero[f][c]=aux;
tablero[f][j2]=0;
break;
case 'd': case 'D':
if (c==numfil-1)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=c+1;
aux=tablero[f][j2];
tablero[f][c]=aux;
tablero[f][j2]=0;
break;
case 't': case 'T':
system("exit");
break;
}
}