Código
#include <iostream> #include <string> char matriz[20][20]; using namespace std; //---------------------------------------------------------------------- float Puntaje(int x, int y){ float Pts; if (matriz[x][y]=='$'){ Pts=1.0; }else if (matriz[x][y]=='%'){ Pts=1.5; }else if (matriz[x][y]=='&'){ Pts=2.0; } return Pts; } //---------------------------------------------------------------------- void Mover_posicion( int fil, int col, char matriz[][20]){ bool estado=false; int i,j,c,pasos,x,y,l,m,Ac; string mov; do{ for( i=0;i<fil;i++){ for( j=0;j<col;j++){ if(matriz[i][j]=='I'){ x=i; y=j; } if(matriz[i][j]=='F'){ l=i; m=j; } } } cin>>mov>>pasos; for(c=0;c<pasos;c++){ if(mov=="N"){ if((x-pasos) < 0){ Ac=Ac + Puntaje(x,y); if(matriz[x][y]==matriz[l][m]){ for (i = 0; i < fil; i++){ for ( j = 0; j < col; j++) cout << matriz[i][j] << " "; cout << endl; } }else{ matriz[x][y] = matriz[x][y]; matriz[x][y] = '#'; if(matriz[i][j]=='I' && matriz[x][y]!='|' ){ for (x = 0; x < fil; x++){ for ( y = 0; y < col; y++) cout << matriz[x][y] << " "; cout << endl; } }else if(matriz[x--][y]!='|'){ for (i = 0; i < fil; i++) { for ( j = 0; j < col; j++) cout << matriz[i][j] << " "; cout << endl; } } } } x--; } } if(matriz[x][y]==matriz[l][m]){ estado=true; } }while(estado!=true); cout<<"Ha llegado"<<"su acumulado es:"<<Ac<<endl; } //---------------------------------------------------------------------- int main(){ int fil,col,i,j; cout<<"Ingrese filas y columnas"<<endl; cin>>fil>>col; for( i=0;i<fil;i++){ for( j=0;j<col;j++){ do{ cin >> matriz[i][j]; }while(matriz[i][j]!='I' && matriz[i][j]!='F' && matriz[i][j]!='$' && matriz[i][j]!='&' && matriz[i][j]!='|' && matriz[i][j]!='%'); } } Mover_posicion( fil, col, matriz); }