SoloCodigo

Programación General => Pascal => Mensaje iniciado por: El Yunta en Jueves 29 de Mayo de 2008, 20:38

Título: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Jueves 29 de Mayo de 2008, 20:38
saludos camaradas.. ps soy estudiante de ing en informatica apenas voy por el segundo semestre, y me mandaron como proyecto final hacer un juego en pascal.

el juego trata de que en la pantalla caigan letras y el usuario debe ir tecleandolas  para ir eliminandolas...conciste en tres niveles, cada nivel las letras caen mas rapidas... ps mi duda es como hago para controlar el tiempo en que caen las letas. :S aver alguien me ayuda de corazon... :)

ps soy nuevo en el foro y me han dicho que es bueno., por eso me e registrado :D
saludos y gracias de antemano.. ;)  :hola:

saludos desde venezuela.
.
.
.
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: Amilius en Jueves 29 de Mayo de 2008, 22:55
Hola!.

Bueno, lo primero es separar la complejidad de un programa. Aqui veo tres puntos claros:

1. Manejar una lista de letras, agregando nuevas letras a la lista a medida que salen nuevas letras, anulando las que teclee el usuario o su "tiempo de vida" termine. Podrias usar un arreglo de caracteres de tamaño fijo de 256 caracteres y usarla como lista "circular", con un contador de un byte que indique la posición donde se irán agregando nuevas letras, si ya existe una letra en la posición la podrías contar como punto en contra. Si el usuario teclea una letra podrías buscar la letra en la lista desde el punto donde se insertan nuevos caracteres hacia atras y reemplazar el valor de la letra por un valor nulo como 0.

2. Mostrar al usuario la lista en pantalla de forma que parezca una lluvia de letras. En otras palabras mostrar el estado actual de la lista.

3. Tener un bucle de control un while por ejemplo que se ejecuta constantemente hasta que ocurre un evento que termine el juego. Por instancia que el usuario teclee 'ESC' o que haya dejado pasar demasiadas letras. En este bucle agregarías nuevas letras y también mostrarías el estado actual de la lista.
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Jueves 29 de Mayo de 2008, 23:25
gracias por tu ayuda hermano..
estoy pensando usar una matriz, aunque nose como hacer para que las letras vallan callendo mas rapido segun su nivel... (nivel 1 lento - nivel 2 intermedio - nivel 3 rapido)..
estube leyendo y buscando en google, y lei que ahi una libreria que se puede usar en una matriz para tardar o acelerar, pero no especificavan mucho... si sabes algo sobre eso...me gustaria saberlo.. :D
nuevamente gracias por tu ayuda, fue muy util..  ;)
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: danifg en Viernes 30 de Mayo de 2008, 14:59
simplemente un delay

delay (x) detiene la ejecución del programa el número de milisegundos indicado

puedes declarar tres constantes...

EsperaFacil = 1000; //un segundo
EsperaMedio = 500; //medio segundo
EsperaDificil = 250; //un cuarto de segundo

la función delay está en la librería crt

un saludo
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Domingo 1 de Junio de 2008, 03:40
gracias brother me ayudo mucho..
pero el delay tengo que ponerlo varias veces asi para que me tarde como 3 seg..

delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);

porq si lo pongo una sola ves, todavia  es muy rapido.. :S

otra cosa brother.... ahi algo que pueda usar para que un titulo parpadee. osea que aparesca y desparesca varias veces... ?
alguna libreria que haga eso?

graxias por sus ayuda..  B)
salu2
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: grandzam en Domingo 1 de Junio de 2008, 07:56
Para que parpadee parece que tienes que hacer algo como:

setcolor(blink);
outtextxy(200,350,'Mensaje que parpadea');
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: danifg en Domingo 1 de Junio de 2008, 13:08
delay (1000);
delay (1000);
delay (1000);

detiene la ejecución del programa el mismo tiempo que

delay (3000);
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Martes 3 de Junio de 2008, 20:13
Cita de: "grandzam"
Para que parpadee parece que tienes que hacer algo como:

setcolor(blink);
outtextxy(200,350,'Mensaje que parpadea');
gracias mano.. pero al ponerlo me manda error.. :s
de que libreria es esa funcion?
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: danifg en Martes 3 de Junio de 2008, 20:53
textcolor de la librería CRT

usa lo siguiente

textcolor (blink);
write ('Estoy parpadeando');
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Martes 3 de Junio de 2008, 22:54
oooohh ok.. :)  ahora si XD.. graxias danifg

otra duda q tengo..

que puedo usar para guardar automaticamente en una variable cualquier letra presionada desde el teclado..

pero que no sea el readkey, ya que no me sirve para el juego que estoy haciendo.

de antemano muchassss gracias  :smartass:   :hola:
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: danifg en Miércoles 4 de Junio de 2008, 01:19
¿Por qué no te sirve readkey para tu juego? Explica un poco qué quieres hacer y te digo
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Miércoles 4 de Junio de 2008, 02:50
lo que pasa es que el juego trata de una lluvia de letras que van callendo en la pantalla y deben ser eliminadas(osea deben ser tecleadas) antes de que lleguen al piso..
entonces si uso un readkey me va a parar el proceso de las letras que van callendo hasta que presione una tecla y eso es lo que no quiero...

este es mi msn marco_jr17@hotmail.com
por si puedes ayudarme un poco... y muchas gracias por tu atension...  B)
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Miércoles 4 de Junio de 2008, 06:34
bueno ya encontre la forma.. XD
estaba algo complicado.. pero ya lo solucione.. jejejeje
bueno igual gracias por sus ayudas.. cualquier duda que se me presente ahi preguntare.. XD
saludos  :)
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: danifg en Miércoles 4 de Junio de 2008, 19:17
Dinos como lo has hecho al final, será interesante para todos
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Jueves 5 de Junio de 2008, 20:39
bueno como necesitaba guardar en una variable las teclas que son presionadas hice esto..

                                         program ejemplo;
                                         uses crt;
                                         var

                                            letra:char;

                                         begin
                                               if keypressed then
                                                  letra:=readkey;
                                         end.
 
asi la variable (letra) va ir tomando el valor de la tecla que sea presionada.
a la final si podia usar el readkey, XD  solo que no lo estaba usando bien.
Título: Re: Alguien Me Puede Aclarar Algunas Dudas. Xfavor.
Publicado por: El Yunta en Jueves 5 de Junio de 2008, 23:02
tengo un error... :S
al poner esto...

procedure ramdon_letras ( var letr:string[5]; var r:integer;);

me dice Error 89: ")" expected.... y se para justo donde puse (var letr:string[5];)

algo puse malo??  :(