Autor
|
Tema: Juego en lenguaje C, solo me falta una libreria o algo para acabarlo (Leído 5,165 veces)
|
josereci
Desconectado
Mensajes: 2
|
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 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <dos.h> #include <windows.h> #include <conio.h> char aleatorio (void); int main(void) { char n, i, k; int band=0, p, veces=0; do { n=aleatorio(); for (i=0;i<3;i++) { if (band>=1) { for(p=0;p<band;p++) } Sleep(2000); band++; } band=0; veces++; }while(veces<3); return 0; } char aleatorio (void){ char c; return c; }
|
|
|
En línea
|
|
|
|
Runex
Desconectado
Mensajes: 192
http://tutogramacion.blogspot.com
|
Si no te importa te adjunto el mismo programa en Python, ahora me pondré a ver tu petición e intentaré solucionartela . #!/usr/bin/env python # -*- coding: utf-8 -*- import time,random,os class juego: def bucle(self,tiempo): self.diccionario = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p", "q","r","s","t","u","v","w","x","y","z"] self.tiempo = tiempo self.repeticiones = 0 self.vidas = 3 self.indice = random.randint(0,25) while self.repeticiones < 10: try: time.sleep(self.tiempo) except: os.system("clear") print "Juego Finalizado" exit(0) raw_input() print self.diccionario[self.indice] self.repeticiones += 1 os.system("clear") self.insertar() def insertar(self): os.system("clear") while self.vidas > 0: print "Introduce la letra:" self.letra = raw_input("Letra>") if self.letra == self.diccionario[self.indice]: print "Letra correcta, ahora mas rapido :)" raw_input() os.system("clear") if self.tiempo == 0.2 or self.tiempo == 0.3: self.tiempo = tiempo = self.tiempo - 0.1 self.bucle(tiempo) else: self.tiempo = tiempo = self.tiempo - 0.030 self.bucle(tiempo) else: print "Letra erronea, otro intento" self.vidas -= 1 if self.vidas == 0: print "Juego Terminado :)" raw_input() exit(0) if __name__ == '__main__': tiempo = 0.3 instancia = juego() 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
Mensajes: 2
|
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
Mensajes: 192
http://tutogramacion.blogspot.com
|
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 #!/usr/bin/env python # -*- coding: utf-8 -*- from threading import Timer # Modulo API multitarea import random,os def Goodbye(): # Funcion Contador os.system("clear") print "No ha introducido nada en 5s retomando el juego" juego() # LLama a la funcion donde se ejecuta el "juego" def juego(): diccionario = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p", "q","r","s","t","u","v","w","x","y","z"] contador = 0 aleatorio = random.randint(0,25) while contador < 10: print diccionario[aleatorio] contador += 1 print "\n Inserte la letra" letra = raw_input("Letra>") if letra == diccionario[aleatorio]: print "Correcto" raw_input() exit(0) else: print "incorrecto" raw_input() exit(0) myTimer = Timer(5,Goodbye) myTimer.start() juego()
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".
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Me Falta Un Menu Para juego
Java
|
java_85
|
1
|
2,703
|
22 Julio 2010, 07:15 am
por Leyer
|
|
|
Ayuda!!! Libreria graficas para juego
Programación C/C++
|
Guillermo575
|
9
|
9,906
|
18 Marzo 2011, 05:46 am
por Guillermo575
|
|
|
solo para novatos aprende el lenguaje de programacion de java
Foro Libre
|
juanaplata
|
2
|
3,501
|
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,603
|
8 Mayo 2011, 18:28 pm
por wolfbcn
|
|
|
Solo hace falta un smartphone para escapar de prisión
Noticias
|
wolfbcn
|
0
|
1,376
|
29 Marzo 2015, 21:28 pm
por wolfbcn
|
|