elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego en lenguaje C, solo me falta una libreria o algo para acabarlo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego en lenguaje C, solo me falta una libreria o algo para acabarlo  (Leído 5,151 veces)
josereci

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Juego en lenguaje C, solo me falta una libreria o algo para acabarlo
« en: 4 Abril 2012, 19:11 pm »

Hola, como estan colegas de la programación...Bueno requiero de su ayuda en un juego que al parecer es muy sencillo. Es una lluvia de letras (una sola), ellas van callendo de la pantalla hasta llegar al final y es trabajo del usuario ingresar la letra que cae para que se vuelva a iniciar el juego cada vez más rápido. Lo tengo todo casi ello, el unico problema es el siguiente:

¿Como hago para que pase la siguiente secuencia...imprime letra, espera 2 segundos, si el usuario no ingresa nada -> continua el ciclo, si el usuario ingresa algo entonces debe comparar si la letra es igual a la que da aleatoriamente el programa (esto es lo de menos).
Lo más importante es la parada, esos 2 segundos de espera...Gracias


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <dos.h>
  5. #include <windows.h>
  6. #include <conio.h>
  7.  
  8. char aleatorio (void);
  9.  
  10.  
  11. int main(void)
  12. {
  13.  
  14. char n, i, k;
  15. int band=0, p, veces=0;
  16.  
  17. do
  18. {
  19.  
  20.     n=aleatorio();
  21.  
  22.     for (i=0;i<3;i++)
  23.    {
  24.         if (band>=1)
  25.         {
  26.          for(p=0;p<band;p++)
  27.               printf("\n");
  28.          }
  29.  
  30.      printf("%c %i \n", n, time());
  31.      Sleep(2000);
  32.  
  33.       system("cls");
  34.       band++;
  35.  
  36.     }
  37.    band=0;
  38.    veces++;
  39.  
  40. }while(veces<3);
  41.  
  42. system("PAUSE");
  43. return 0;
  44.  
  45. }
  46.  
  47.  
  48. char aleatorio (void){
  49. char c;
  50. srand(time(0));
  51. c=rand()%26+97;
  52. return c;
  53. }


En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Juego en lenguaje C, solo me falta una libreria o algo para acabarlo
« Respuesta #1 en: 4 Abril 2012, 20:32 pm »

Si no te importa te adjunto el mismo programa en Python, ahora me pondré a ver tu petición e intentaré solucionartela :).

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import time,random,os
  4. class juego:
  5.  
  6. def bucle(self,tiempo):
  7. self.diccionario = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p",
  8. "q","r","s","t","u","v","w","x","y","z"]
  9. self.tiempo = tiempo
  10. self.repeticiones = 0
  11. self.vidas = 3
  12. self.indice = random.randint(0,25)
  13. while self.repeticiones < 10:
  14. try:
  15. time.sleep(self.tiempo)
  16. except:
  17. os.system("clear")
  18. print "Juego Finalizado"
  19. exit(0)
  20. raw_input()
  21. print self.diccionario[self.indice]
  22. self.repeticiones += 1
  23. os.system("clear")
  24. self.insertar()
  25. def insertar(self):
  26. os.system("clear")
  27. while self.vidas > 0:
  28. print "Introduce la letra:"
  29. self.letra = raw_input("Letra>")
  30. if self.letra == self.diccionario[self.indice]:
  31. print "Letra correcta, ahora mas rapido :)"
  32. raw_input()
  33. os.system("clear")
  34. if self.tiempo == 0.2 or self.tiempo == 0.3:
  35. self.tiempo = tiempo = self.tiempo - 0.1
  36. self.bucle(tiempo)
  37. else:
  38. self.tiempo = tiempo = self.tiempo - 0.030
  39. self.bucle(tiempo)
  40. else:
  41. print "Letra erronea, otro intento"
  42. self.vidas -= 1
  43.                                if self.vidas == 0:
  44.                                    print "Juego Terminado :)"
  45.                                    raw_input()
  46.                                    exit(0)
  47.  
  48. if __name__ == '__main__':
  49. tiempo = 0.3
  50. instancia = juego()
  51. instancia.bucle(tiempo)

EDITO: Lo siento, he intentado mirarlo pero no me había fijado que usas librerias como windows.h, conio.h etc y estoy con Linux por tanto no puedo.

De todas formas, lo que tu quieres hacer son 2 procesos o threads al mismo tiempo (Programación Paralela), así que mira esto, te puede servir:

http://www.youtube.com/watch?v=X9qFDSo6crA


« Última modificación: 5 Abril 2012, 09:59 am por Runex » En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
josereci

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Juego en lenguaje C, solo me falta una libreria o algo para acabarlo
« Respuesta #2 en: 4 Abril 2012, 23:25 pm »

Interesante tu codigo en python, de echo le metiste vidas y todo, un añadido!, pero pues mirando bien el problema del tiempo veo que podes hacer una especie de intervalo para poder meter la letra...eso es lo que quiero hacer pero en C. Se que debe ser alguna libreria absurda o un simple codigo que al ingresar la letra (ojo sin undir enter) haga la comparación y en cualquier momento...creo que antes del sleep, de cierto modo creo que el sleep estaria estorbando, en fin, todos mis colegas de la clase andamos con esta misma duda...

Gracias amigo x ayudarme! ;-)
En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Juego en lenguaje C, solo me falta una libreria o algo para acabarlo
« Respuesta #3 en: 5 Abril 2012, 09:56 am »

Interesante tu codigo en python, de echo le metiste vidas y todo, un añadido!, pero pues mirando bien el problema del tiempo veo que podes hacer una especie de intervalo para poder meter la letra...eso es lo que quiero hacer pero en C. Se que debe ser alguna libreria absurda o un simple codigo que al ingresar la letra (ojo sin undir enter) haga la comparación y en cualquier momento...creo que antes del sleep, de cierto modo creo que el sleep estaria estorbando, en fin, todos mis colegas de la clase andamos con esta misma duda...

Gracias amigo x ayudarme! ;-)

Librerias en C creo que hay una tal Boost o algo parecido pero te aconsejo lo que te he dicho antes, los threads que te permiten implementar multitarea :).

 Un saludo josereci :)

EDITO: Más o menos lo que quieres es algo así no?, Te lo escribo en diferentes funciones para no liarte con clases y tonterias :)

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4.  
  5. from threading import Timer # Modulo API multitarea
  6. import random,os
  7. def Goodbye(): # Funcion Contador
  8. os.system("clear")
  9. print "No ha introducido nada en 5s retomando el juego"
  10. juego() # LLama a la funcion donde se ejecuta el "juego"
  11. def juego():
  12. diccionario = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p",
  13. "q","r","s","t","u","v","w","x","y","z"]
  14. contador = 0
  15. aleatorio = random.randint(0,25)
  16. while contador < 10:
  17. print diccionario[aleatorio]
  18. contador += 1
  19. print "\n Inserte la letra"
  20. letra = raw_input("Letra>")
  21. if letra == diccionario[aleatorio]:
  22. print "Correcto"
  23. raw_input()
  24. exit(0)
  25. else:
  26. print "incorrecto"
  27. raw_input()
  28. exit(0)
  29. myTimer = Timer(5,Goodbye)
  30. myTimer.start()
  31. juego()
  32.  

Pruébalo y si es así aseguramelo y te lo escribo parecido en C :)
« Última modificación: 5 Abril 2012, 10:14 am por Runex » En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Me Falta Un Menu Para juego
Java
java_85 1 2,695 Último mensaje 22 Julio 2010, 07:15 am
por Leyer
Ayuda!!! Libreria graficas para juego
Programación C/C++
Guillermo575 9 9,883 Último mensaje 18 Marzo 2011, 05:46 am
por Guillermo575
solo para novatos aprende el lenguaje de programacion de java
Foro Libre
juanaplata 2 3,487 Último mensaje 16 Marzo 2011, 22:17 pm
por leogtz
'Brink': un juego de disparos en el que no hace falta disparar para ganar
Noticias
wolfbcn 0 1,597 Último mensaje 8 Mayo 2011, 18:28 pm
por wolfbcn
Solo hace falta un smartphone para escapar de prisión
Noticias
wolfbcn 0 1,366 Último mensaje 29 Marzo 2015, 21:28 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines