Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - laura_55

#1
 En cuanto a tus preguntas:
*El usuario solo va a ingresar una I y una F.
*Cuando se mueve se le coloca a la posición anterior el carácter #.
Y de verdad discúlpenme si no se entiende lo que trato de explicar.
#2
si, lo siento de verdad trata de explicar lo mejor que puedo pero las palabras no salen como debería. Lo que trato de decir es que a medida que mi carácter va subiendo y en el numero de pasos que indico llega al caracter F, es decir,  la posición  del carácter I pasa a ser la misma que el F. El se sale y no pide mas paso, para eso es el do while. Espero que me entienda, ya se que no debo ser profesora explico pésimo.
#3
Bueno con el do while del int main lo que quiero es que el usuario llene la matriz solo con los caracteres  I F  $  &  | % . Y el do while de la acción mover posición lo que hace es que cuanto la posición donde esta el carácter I es igual a F mi variable estado se vuelve verdad por lo que se sale y me imprime el mensaje ha llegado con el acumulado de los puntos de las posiciones por donde paso el carácter I. No se, si eso responde a tu pregunta, pero eso es lo que intento hacer y gracias por tratar de ayudarme a todos.
#4
lo siento si no se entiende, estoy comenzando. Lo que yo intente hacer fue que según la coordenada que ingrese es el usuario (norte, sur, este, oeste) se mueva el carácter
I tantas veces como lo indico el usuario. Ej si el usuario ingresa N 2, el carácter debería moverse nos espacios al norte y en su camino ir colocando el #. Yo trate de colocar el x-- para que fuera de posición en posición y así poder ir acumulando los puntos que hace la acción puntaje. Cambien le coloque un do while para que se saliera cuando la posición de I fuera igual  a F, se saliera y me escribiera el mensaje de ha llegado y de cuanto es mi acumulado. Lo siento si mi código es un desastre solo que parece que las matrices y yo no nos llevamos. No se, si estoy responde a tu pregunta
#5
Hola a todos mi nombre es Laura y soy nueva por aquí, espero que todos estén bien. Mi duda es la siguiente yo quiero crear una matriz con ciertos elementos. Luego de llenarla quiero poder un elemento de mi matriz posición por posición según lo que ingrese el usuario, sea norte, sur, este, oeste, para así ir acumulando un puntaje. Yo cree el siguiente código pero no me funciona y no se que estoy haciendo mal. Disculpen la molestias y entiendan que soy principiante por lo que debo de tener los errores mas estúpidos, solo les muestro el norte porque mi código esta hecho un desastre y es muy largo, y como siempre se repite lo mismo quiero saber que tengo mal y así poder arreglarlo en los demás. Gracias de antemano, y sean un poco pacientes todavía soy principiante.

Código (cpp) [Seleccionar]
#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);
}