• Domingo 15 de Diciembre de 2024, 16:51

Autor Tema:  Comprobación Teclado  (Leído 2694 veces)

Dunadan

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Comprobación Teclado
« en: Lunes 15 de Agosto de 2005, 17:11 »
0
Buenas, estuve probando y no pude lograrlo: lo que quiero es una función que se fije si el teclado tiene alguna tecla en la memoria, si no es asì que siga.  Intenté pero lo que pasa es que el programa se queda esperando a que pulse una tecla, sigue corriendo la función infinitamente o directamente salta de la función.  
   
       Lo único que quiero es saber si el usuario pulsó una tecla, pero que no se quede esperando a que la pulse.

Gracias de antemano y saludos.
"Desde antaño se dice que el espíritu que al demonio se ha vendido no se apresura en dejar la envoltura de la carne, sino que alimenta y enseña al mismo gusano que roe, hasta que desde la corrupción emerge una vida terrible, y las criaturas que con carroña de la tierra se alimentan se multiplican a escondidas para hostigarla, y se hacen monstruosas para infestarlas.  En secreto son excavadas interminables galerías donde debían bastar los poros de la tierra, y unas criaturas que sólo debían arrastrarse han aprendido a caminar"

[size=109]H.P. Lovecraft "El Ceremonial"[/size]

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Comprobación Teclado
« Respuesta #1 en: Lunes 15 de Agosto de 2005, 17:17 »
0
Cita de: "Dunadan"
Buenas, estuve probando y no pude lograrlo: lo que quiero es una función que se fije si el teclado tiene alguna tecla en la memoria, si no es asì que siga.  Intenté pero lo que pasa es que el programa se queda esperando a que pulse una tecla, sigue corriendo la función infinitamente o directamente salta de la función.  
   
       Lo único que quiero es saber si el usuario pulsó una tecla, pero que no se quede esperando a que la pulse.

Gracias de antemano y saludos.
Seria interesante que aclararas con que sentido queres hacer eso como para poder proponerte una solucion.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Dunadan

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Comprobación Teclado
« Respuesta #2 en: Lunes 15 de Agosto de 2005, 18:22 »
0
Mil disculpas, lo que quería hacer es lo siguiente: en realidad es una pavada, estaba haciendo un jueguito para practicar lo recién aprendido sobre matrices, y dónde sería la presentación dice "Por favor presione un tecla para continuar", en seguida después de eso quería hacer una función en la que nada más escriba continuamente una serie de "puntos", haciendo la ilusiòn de que estuviera pensando, acá el código:

Código: Text
  1.  
  2. void Puntitos(int X,int Y,int iVeces)
  3. {
  4.   int i,j,r,w;
  5.  
  6.   do{
  7.   gotoxy(X,Y);
  8.  
  9.   for(i=0;i < iVeces;i++) /*procede a escribir los puntos con delay*/
  10.   {
  11.     putchar('.');
  12.     if(stdin != NULL ) /*Esto esta mal, no funciona*/
  13.     {
  14.       return;
  15.     }
  16.     else
  17.     {
  18.     delay(1000);
  19.      }
  20.   }
  21.  
  22.  
  23.   for(r=0;r<iVeces;r++) /*Borra lo puntitos*/
  24.   {
  25.    gotoxy(X+r,Y);
  26.    putchar(' ');
  27.   }
  28.  
  29.  
  30.   }while(kbhit !=  0 ); /*No funciona*/
  31. return;
  32.  
  33.  

Lo finalidad es ecribir X puntitos con cierto delay entre cada uno, borrarlos y volverlos a escribir hasta que el usuario pulse una tecla.  Quería comprobar entre cada punta que se escribe y después de borrarlos si el usuario pulsó una tecla, pero no encuentro la función adecuada (si es que la hay) para verificar sólo si hay una tecla en espera, no que espere que el usuario teclee una.  Después de esta función entraría directamente en la pantalla principal del juego, pero eso ya es otra cosa.  Espero haber aclarado un poco más y disculpas nuevamente.

Saludos.

P.D= Esto es aparte pero tiene que ver con matrices; conozco lo algoritmos de ordenamiento de vectores,¿pero cómo hago para ordenar matrices? Por ejemplo:

Código: Text
  1.  
  2. 159                   123
  3. 864       a esto   456  
  4. 732                   789
  5.  
  6.  

Aprovecho de paso para no crear otro post, si lo que hago es desubicado por favor díganmelo.
"Desde antaño se dice que el espíritu que al demonio se ha vendido no se apresura en dejar la envoltura de la carne, sino que alimenta y enseña al mismo gusano que roe, hasta que desde la corrupción emerge una vida terrible, y las criaturas que con carroña de la tierra se alimentan se multiplican a escondidas para hostigarla, y se hacen monstruosas para infestarlas.  En secreto son excavadas interminables galerías donde debían bastar los poros de la tierra, y unas criaturas que sólo debían arrastrarse han aprendido a caminar"

[size=109]H.P. Lovecraft "El Ceremonial"[/size]

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Comprobación Teclado
« Respuesta #3 en: Lunes 15 de Agosto de 2005, 18:46 »
0
En cuanto al codigo deberias usar un bucle de este estilo:

do
{
}while(!kbhit());

Ya que kbhit devuelve 0 cuando no tiene ninguna tecla pulsada:
http://www.scriptlogic.com/Kixtart/htmlhel...tions/kbhit.htm


PD. Me parece mas logico que abras otra pregunta para el tema del ordenamiento  :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

piyey

  • Miembro MUY activo
  • ***
  • Mensajes: 101
  • Nacionalidad: ni
    • Ver Perfil
    • Piyeycorp® - La imaginación es el límite
Re: Comprobación Teclado
« Respuesta #4 en: Martes 16 de Agosto de 2005, 00:43 »
0
Hola amigos...

Segun lo que entendi el ciclo seria mas o menos asi:

Código: Text
  1. while(condicion)
  2. {
  3.     if(kbhit())//si presiona una tecla
  4.     {
  5.         ...
  6.     }
  7. }
  8.  

ah... y el ciclo no te funcionaba porque kbhit() es una función y no le pusiste los parentesis...

See you!!! :hola:
Piyey.
Si no vives para servir...
no sirves para vivir.


No soy el dueño del mundo...
pero si el hijo del dueño.


Entre la linea que divide la realidad de la ilusión...
se encuentra la imaginación

IlusionLand - Piyey

Dunadan

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Comprobación Teclado
« Respuesta #5 en: Martes 16 de Agosto de 2005, 14:32 »
0
Muchas gracias a los dos, yo busqué varias posibilidades, pero la primera que había probado (kbhit) no le había puesto los paréntesis, error de principiante  :P
Después abro otro post sobre el tema del ordenamiento de matrices  <_<

Saludos
"Desde antaño se dice que el espíritu que al demonio se ha vendido no se apresura en dejar la envoltura de la carne, sino que alimenta y enseña al mismo gusano que roe, hasta que desde la corrupción emerge una vida terrible, y las criaturas que con carroña de la tierra se alimentan se multiplican a escondidas para hostigarla, y se hacen monstruosas para infestarlas.  En secreto son excavadas interminables galerías donde debían bastar los poros de la tierra, y unas criaturas que sólo debían arrastrarse han aprendido a caminar"

[size=109]H.P. Lovecraft "El Ceremonial"[/size]