Hola a todos espero que estén bien, como lo escribí en el titulo tengo una duda de como mover un elemento de una matriz en forma norte,sur,este,oeste,noreste...Les adjunto mi código para que vean mi idea, quizás este pésima pero según mi lógica debería funcionar. Mi idea consiste en declarar dos variables para guardar la posición de la matriz y si mi matriz es igual al carácter que deseo mover, en este caso r, muevo la matriz la cantidad de pasos que ingrese el usuario. Mi código solo tiene norte porque como mi idea no me funciona quería saber que tengo malo para luego continuar, mi idea es si va al norte restar las filas, al sur sumar filas, este sumar columnas y oeste restar, espero que logren entender que es lo que trato de hacer el código es el siguiente: (Y disculpen si escribo mucho solo intento que mi idea se entienda)
Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
char matriz[20][20];
using namespace std;
int main(){
int fil,col,pasos,i,j,x,y;
string Mov;
cout<<"Ingrese filas y columnas"<<endl;
cin>>fil>>col;
cin>>Mov>>pasos;
for( i=0;i<fil;i++){
for( j=0;j<col;j++){
do{
cout<<"["<<i<<"]"<<"["<<j<<"]"<<endl;
cin >> matriz[i][j] ;
}while(matriz[i][j]!='R' && matriz[i][j]!='S' && matriz[i][j]!='#' && matriz[i][j]!='*' && matriz[i][j]!='@' && matriz[i][j]!='/');
}
}
if(Mov=="N"){
if(matriz[i][j]=='R'){
x=i;
y=j;
for (i = 0; i < fil; i++)
{
for ( j = 0; j < col; j++)
cout << matriz[x-pasos][j] << " ";
cout << endl;
}
}
}
}