Funciones en laberinto en C!

Iniciado por lalintians, 11 Mayo 2011, 00:07 AM

0 Miembros y 1 Visitante están viendo este tema.

lalintians

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.

lalintians

el cuadrito negro que se ve es {x} pero con []... :S

lalintians

yaaa lo acabee jajaja gracias