• Domingo 15 de Diciembre de 2024, 20:58

Autor Tema:  Una Cruz Que Se Mueva Con El Teclado  (Leído 2656 veces)

lokyam

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Una Cruz Que Se Mueva Con El Teclado
« en: Martes 6 de Septiembre de 2005, 06:44 »
0
:hola: Hola, hace algunos dias mi profe de estructuras de datos nos dejo de tarea, hacer un programa en C en el cual podamos mover una cruz dibujada en modo texto o hecha con puros cuadros, que se mueva con el teclado osea con las fechas del teclado y que cuando llegue al tope de arriba se pare no se pase y asi al tope de abajo y de los lados.

yo tengo algo de conocimientos de C  :blink:  pero la verdad no tengo idea de como hacer este programa

bueno espero que me puedan ayudar  ;)
________________________________________
NO SE MUCHO PERO LO QUE SE LO SE BIEN


JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Una Cruz Que Se Mueva Con El Teclado
« Respuesta #2 en: Martes 6 de Septiembre de 2005, 14:41 »
0
que dudas tienes puntualmente? trata de resolver el problema y cuentanos tus dudas.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

lokyam

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Una Cruz Que Se Mueva Con El Teclado
« Respuesta #3 en: Lunes 12 de Septiembre de 2005, 06:27 »
0
bueno uso borland c++ 5 y el profe me pidio que hiciera una cruz con el codigo ascii y que esa cruz se moviera con las flechas del teclado y que cuando llegue hasta arriba tope no se pase y asi con todos los lados

yo ya hice la cruz pero la verdad no tengo ni la menor idea de como hacer que se mueva con las flechas
bueno aqui les pongo el codigo de mi programa

Código: Text
  1.  
  2. #include <conio.h>
  3. #include <stdio.h>
  4.  
  5. main()
  6.  {
  7.   void cruz();
  8.   cruz();
  9.   getch();
  10.  }
  11.  
  12.   void cruz()
  13.    {
  14.     gotoxy(40,16);
  15.     printf("Û");
  16.     gotoxy(40,17);
  17.     printf("Û");
  18.     gotoxy(40,18);
  19.     printf("Û");
  20.     gotoxy(40,14);
  21.     printf("Û");
  22.     gotoxy(40,13);
  23.     printf("Û");
  24.     gotoxy(40,15);
  25.     printf("Û");
  26.     gotoxy(39,14);
  27.     printf("Û");
  28.     gotoxy(38,14);
  29.     printf("Û");
  30.     gotoxy(41,14);
  31.     printf("Û");
  32.     gotoxy(42,14);
  33.     printf("Û");
  34.    }
  35.  
  36.  

espero que me puedan ayudar
________________________________________
NO SE MUCHO PERO LO QUE SE LO SE BIEN

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Una Cruz Que Se Mueva Con El Teclado
« Respuesta #4 en: Lunes 12 de Septiembre de 2005, 07:30 »
0
1- Que debes hacer para mostrar que la cruz se ''mueva'
rta:\borrarla de donde la acabas de dibujar, dibujarla en otro lugar, generalmente cerca de donde acabas de dibujarla
2- Como saber donde dibujar la siguiente posicion de la cruz?
rta:/ cada veaz que se presiona una tecla, alteras la variable o las variables que representan  la posicion de la cruz?
3- Como comienzo a hacer eso:
rta:/
- tu función de dibujar la cruz debe ser más completa, debe recibir parámetros de posición en el eje X y en el eje Y y debe dibujar la cruz según se le pasen los parámetros.
- los parametros que le pasas a la funciona son valores que tu mismo estableces segun se presione una utotra tecla, generralmente las teclas derecha e izquierda aumentan o disminuyen la posicion en X y las teclas arriba y abajo en le eje Y
- Todo debe funcionar dentro de un ciclo infinito, en cada pasada del cilo capturas las ordenes delteclasdo, calculas las coordenadas, borras la cruz y la dibujas en un nuevo lugar.

Eso es suficiente por el momento.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

lokyam

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Una Cruz Que Se Mueva Con El Teclado
« Respuesta #5 en: Martes 13 de Septiembre de 2005, 05:53 »
0
ok ya tengo el codigo, pero me marca un error me dice que Call to undefined function 'bioskey' no se por que, espero que aunque el error sea tonto me puedan ayudar aqui esta el codigo

Código: Text
  1.  
  2. #include <dos.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <bios.h>
  6.  
  7. /*Programa: Cruz q tiene movimientos delimitados por las esquinas
  8. *programador:Luis Altobeli 2 sept 2005
  9. *UAZ Ing. en computacion Orgullosamente UAZ!!!!
  10. *Derechos reservados
  11. *vegan power xaltox
  12. */
  13.  
  14. union teclas
  15.     {
  16.      char c[2];
  17.      int i;
  18.     };
  19.  
  20.   main()
  21.    {
  22.    void instrucciones(void);
  23.   void dibujar_rect(int *,int *,int *,int *,int *,int *,int *);
  24.   void mover_izq(int *,int *,int *,int *,int *,int *,int *);
  25.   void mover_der(int *,int *,int *,int *,int *,int *,int *);
  26.   void mover_arriba(int *,int *,int *,int *,int *,int *,int *);
  27.   void mover_abajo(int *,int *,int *,int *,int *,int *,int *);
  28.  
  29.   int a=38;
  30.   int b=40;
  31.   int x=12;
  32.   int d=13;
  33.   int e=14;
  34.   int z=11;
  35.   int g=10;
  36.  
  37.  
  38.  
  39.   union teclas f;
  40.   instrucciones();
  41.  
  42. clrscr();
  43.  
  44.   clrscr();
  45.   dibujar_rect(&a,&b,&x,&d,&e,&z,&g);
  46. do{
  47.  
  48.  
  49.  
  50.  
  51. f.i=bioskey(0);
  52. if(f.c[1])
  53. {
  54.   switch(f.c[1])
  55.          {
  56.           case 72:
  57.                 clrscr();
  58.                 mover_arriba(&a,&b,&x,&d,&e,&z,&g);
  59.                 if (g==1){
  60.                 gotoxy(35,12);
  61.                 printf("xLimite superiorx!!!!");
  62.                 }
  63.                 else {
  64.                 e=e-1;
  65.                 d=d-1;
  66.                 x=x-1;
  67.                 z=z-1;
  68.                 g=g-1;}
  69.  
  70.             break;
  71.  
  72.           case 80:
  73.                  clrscr();
  74.                  mover_abajo(&a,&b,&x,&d,&e,&z,&g);
  75.                  if (e==25){
  76.                  gotoxy(35,12);
  77.                  printf("xLimite Inferiorx!!!!");}
  78.                  else{
  79.                   e=e+1;
  80.                   d=d+1;
  81.                   x=x+1;
  82.                   z=z+1;
  83.                   g=g+1;
  84.                 }
  85.  
  86.  
  87.                   break;
  88.           case 75:
  89.                     clrscr();
  90.                     mover_izq(&a,&b,&x,&d,&e,&z,&g);
  91.                     if(a==1){
  92.                     gotoxy(35,12);
  93.                     printf("xLimite izquierdox");}
  94.                     else{
  95.                     a=a-1;
  96.                     b=b-1;
  97.                      }
  98.                   break;
  99.           case 77:
  100.                    clrscr();
  101.                    mover_der(&a,&b,&x,&d,&e,&z,&g);
  102.                    if(a==75){
  103.                    gotoxy(35,12);
  104.                    printf("xLimite Derechox");}
  105.                    else{
  106.                     a=a+1;
  107.                     b=b+1;
  108.                  }
  109.  
  110.                   break;
  111.            default:
  112.            gotoxy(1,1);
  113.            printf("xdebes presionar solo lo que esta en el menux!!! ");
  114.      }
  115.    }
  116.  
  117.  
  118.        } while(f.c[0]!=27);
  119.  
  120.  
  121.   }
  122.  
  123.  
  124.   void dibujar_rect(int *a,int *b,int *x,int *d,int *e,int *z,int *g)
  125.   {
  126.    gotoxy(*a,*x);
  127.   printf("");  //CARITAS DEL CENTRO
  128.   gotoxy(*b,*d);
  129.   printf("");
  130.   gotoxy(*b,*e);
  131.   printf("");       //CARITAS DE ARRIBA
  132.   gotoxy(*b,*z);
  133.   printf("");
  134.   gotoxy(*b,*g);
  135.   printf("");      //CARITAS DE ABAJO
  136.  
  137.   }
  138.  
  139.   void mover_izq(int *a,int *b,int *x,int *d,int *e,int *z,int *g)
  140.   {
  141.    gotoxy(*a,*x);
  142.   printf("");  //CARITAS DEL CENTRO
  143.   gotoxy(*b,*d);
  144.   printf("");
  145.   gotoxy(*b,*e);
  146.   printf("");       //CARITAS DE ARRIBA
  147.   gotoxy(*b,*z);
  148.   printf("");
  149.   gotoxy(*b,*g);
  150.   printf("");      //CARITAS DE ABAJO
  151.  
  152.   }
  153.  
  154.   void mover_der(int *a,int *b,int *x,int *d,int *e,int *z,int *g)
  155.   {
  156.    gotoxy(*a,*x);
  157.   printf("");  //CARITAS DEL CENTRO
  158.   gotoxy(*b,*d);
  159.   printf("");
  160.   gotoxy(*b,*e);
  161.   printf("");       //CARITAS DE ARRIBA
  162.   gotoxy(*b,*z);
  163.   printf("");
  164.   gotoxy(*b,*g);
  165.   printf("");      //CARITAS DE ABAJO
  166.  
  167.   }
  168.  
  169.   void mover_arriba(int *a,int *b,int *x,int *d,int *e,int *z,int *g)
  170.   {
  171.    gotoxy(*a,*x);
  172.   printf("");  //CARITAS DEL CENTRO
  173.   gotoxy(*b,*d);
  174.   printf("");
  175.   gotoxy(*b,*e);
  176.   printf("");       //CARITAS DE ARRIBA
  177.   gotoxy(*b,*z);
  178.   printf("");
  179.   gotoxy(*b,*g);
  180.   printf("");      //CARITAS DE ABAJO
  181.  
  182.   }
  183.  
  184. void mover_abajo(int *a,int *b,int *x,int *d,int *e,int *z,int *g)
  185.   {
  186.    gotoxy(*a,*x);
  187.   printf("");  //CARITAS DEL CENTRO
  188.   gotoxy(*b,*d);
  189.   printf("");
  190.   gotoxy(*b,*e);
  191.   printf("");       //CARITAS DE ARRIBA
  192.   gotoxy(*b,*z);
  193.   printf("");
  194.   gotoxy(*b,*g);
  195.   printf("");      //CARITAS DE ABAJO
  196.  
  197.   }
  198.  
  199.   void instrucciones (void)
  200.   {
  201.      gotoxy(10,60);
  202.     printf("--------------------------------\n");
  203.     gotoxy(10,61);
  204.   printf("Presiona la tecla 'Esc' para salir\n");
  205.   gotoxy(10,62);
  206.   printf("Presiona arriba, abajo, izquierda, derecha para mover\n");
  207.   gotoxy(10,60);
  208.   printf("----------------------------------");
  209.   getch();
  210.   clrscr();
  211.   }
  212.  
  213.  
  214.  

bueno espero y me puedan ayudar
________________________________________
NO SE MUCHO PERO LO QUE SE LO SE BIEN

lokyam

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Una Cruz Que Se Mueva Con El Teclado
« Respuesta #6 en: Martes 13 de Septiembre de 2005, 05:57 »
0
otra cosa debo de aclarar que el programa no es mio y no me lo estoy pirateando un compañero me lo presto y yo solo lo voy a modificar
________________________________________
NO SE MUCHO PERO LO QUE SE LO SE BIEN

lokyam

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Una Cruz Que Se Mueva Con El Teclado
« Respuesta #7 en: Martes 13 de Septiembre de 2005, 07:01 »
0
bueno parece ser quer si tengo la libreria bios.h pero no tengo la funcion bioskey alguien sabe de donde la puedo bajar o como le hago para solucionar ese problema
________________________________________
NO SE MUCHO PERO LO QUE SE LO SE BIEN