Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lalintians en 11 Mayo 2011, 00:07 am



Título: Funciones en laberinto en C!
Publicado por: lalintians en 11 Mayo 2011, 00:07 am
hola que tal.
Quisiera darles las gracias por querer ayudarme, la verdad voy iniciando en este tema de programacion y queria ver si me pueden ayudar con algunas dudas ya que estoy leyendo el libro de deytel y deytel pero mis dudas no se van u.u

les muestro el codigo que llevo para que lo observen

// autor: Pedro Sanchez
// Version: Lab 1.0
// Fecha: 11 Mayo 2011

#include <stdio.h>
#include <stdlib.h>

#define filas 14
#define columna 25
#define A 219
#define E ' '
#define O 3
#define B 1
#define xf 7
#define yf 24
int test[filas][columna]=
 {{A,A,E,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A}, //entrada es
  • [1]
  {A,E,E,E,E,A,A,E,E,E,E,A,A,A,E,E,E,E,E,E,E,A,E,E,A}, //salida es  [24][7]
  {A,E,E,A,E,A,A,E,A,A,A,A,A,E,E,A,A,A,A,A,E,A,E,A,A},
  {A,A,A,A,E,A,E,E,E,E,E,A,A,E,A,A,E,A,A,E,E,E,E,A,A},
  {A,E,E,E,E,E,E,A,A,A,E,A,A,E,E,E,E,A,A,A,E,A,E,E,A},
  {A,E,A,A,E,A,E,E,E,A,E,E,E,E,A,A,E,A,E,E,E,A,A,E,A},
  {A,E,A,E,E,A,E,A,A,A,E,A,A,A,A,E,E,E,A,A,A,E,E,A,A},
  {A,E,A,A,E,E,E,E,A,E,E,A,A,A,A,E,A,E,E,A,E,A,E,E,B},
  {A,E,E,E,E,A,A,E,A,E,A,A,A,A,E,E,A,A,E,A,E,E,E,A,A},
  {A,A,E,A,A,E,A,E,A,E,E,A,A,A,E,A,A,A,A,A,E,A,A,E,A},
  {A,A,E,E,A,E,A,E,A,A,E,E,A,E,E,E,E,E,E,A,E,E,E,E,A},
  {A,A,E,E,E,E,E,E,A,E,A,E,A,E,A,A,E,A,E,A,A,A,A,E,A},
  {A,E,E,A,E,A,A,E,E,E,A,E,E,E,E,E,E,A,E,E,E,E,E,E,A},
  {A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A}
};

void Aparecer(int, int);
void Instrucciones(void);
void verificar(int, int, int);



int main()
{int l, x=0,k=2;

test
  • [k]=3;

while(x<=30)
{


Aparecer (x, k);
scanf("%d",&l);
test
  • [k]=0;

   if (l==1 && x>0){
       test[x-1][k]=3;
       x=x-1;
       }

   if (l==2){
        test[x+1][k]=3;
        x=x+1;
        }
   else if (l==3){
        test
  • [k+1]=3;
        k=k+1;
        }
   else if (l==4){
        test
  • [k-1]=3;
        k=k-1;
        }





system("cls");
test
  • [k]=3;


}
}



void Aparecer(int w, int n){
    int i,y;

if(w==xf && n==yf){
      printf("\n YA GANASTE FELICIDADES! \n");
      return 0;
      }

printf("valor de x es: %d\n valor de k es: %d\n", w ,n);
   for(i=0;i<filas;i++){
       for(y=0;y<columna;y++){
           printf("%c", test[y]);
       }
       printf("\n");
    }
printf("llega a la carita feliz!! \nPresiona:\n1 %c\n2 %c\n3 %c\n4 %c \n", 24, 25, 26, 27);
}

void verificar(int l, int x, int k){
if(test
  • [k] == 'A' || x<0){
  printf("no se puede el movimiento");
  }
}



Ya logre que se moviera!!! :D solo que no se como restringirlo!
alguien que me de una idea por que con el void verificar no sucede nada, ni siquiera imprime el "no se puede el movimiento".


Gracias por su ayuda, la apreciare demasiado.!  :xD
Pedro.


Título: Re: Funciones en laberinto en C!
Publicado por: lalintians en 11 Mayo 2011, 02:18 am
el cuadrito negro que se ve es {x} pero con []... :S


Título: Re: Funciones en laberinto en C!
Publicado por: lalintians en 11 Mayo 2011, 03:10 am
yaaa lo acabee jajaja gracias