DEV PASCAL - JUEGO - URGE!
Publicado por David (1 intervención) el 16/12/2014 20:03:11
Hola a todos tengo que hacer este juego
El juego consiste en adivinar una palabra compuesta de dos letras mayúsculas, la primera será una vocal obligatoriamente y la segunda deberá ser distinta de la primera (no se incluye la Ñ) generada aleatoriamente por parte del computador. Teniendo el usuario 15 intentos para adivinarla.
Cuando el usuario introduzca su palabra (dos caracteres), el programa debera informar del resultado del intento : se ha acertado o no la vocal; y en el segundo carácter en el caso que no haya acertado se mostrará si es mayor o menor a la oculta.
Al final del programa se debera mostrar la causa de finalización del juego : se han gastado los intentos o se ha acertado. En el caso que no se haya acertado, se mostrará la pareja oculta.
Como hay espacio suficiente en pantalla, los mensajes de cada intento deberán permanecer en ella durante todo el desarrollo del juego.
tengo una parte hecha, pero me está dando errores y no se si voy por buen camino... alguien podría ayudarme? es urgente con esto salvaría la asignatura.
Esto es lo que he ido haciendo:
program pareja_oculta;
uses CRT;
const NCOL=80;
var
i,j:byte;
letra1:char;
letra2:char; {las letras a adivinar}
auxInt:integer; {bucles y operaciones}
prueba1:char;
prueba2:char;
intentos: integer;
begin
(**PRESENTACIÓN**)
TextColor (red);
TextBackground (white);
clrscr;
for i:=1 to 3 do
for j:=1 to NCOL do write ('*');
gotoxy(25,2);
write (' PAREJA OCULTA: valor+.... ');
{GENERACION DE LA PRIMERA LETRA}
randomize; {valor distinto}
auxInt:= random (5);
{Funcion para escoger un numero aleatorio entre 0 y 4 (la primera letra a de ser vocal)
Condicional para elegir la vocal. Si aux = 0 escogemos la A, si aux = 1 la E, etc.}
if(auxInt = 0) then
letra1 := 'A';
if (auxInt = 1)then
letra1 := 'E';
if (auxInt = 2)then
letra1 := 'I';
if (auxInt = 3)then
letra1 := 'O';
if (auxInt = 4) then
letra1 := 'U';
begin
(**GENERACION DE LA SEGUNDA LETRA**)
letra2 := letra1; {igualamos ambas letras para que entre en el bucle}
while(letra1 = letra2) do {no se saldra del bucle y se generaran nuevas letras hasta que sean distintas }
randomize; {valor distinto}
letra2:=char random (26)+65;
{ La funcion elige aleatoriamente un valor entre 0 y 25 (tenemos 26 letras posibles).Despues sumamos 65 porque las letras van del 65 al 90 en codigo ASCII. A -> 65, Z -> 90}
intentos:=0;
while(intentos < 15) do {El bucle se repetira mientras el numero de intentos sea distinto de 15 }
write (intentos); {Muestra el mensaje en pantalla}
readln(prueba1, prueba2); {El usuario mete dos letras y las guarda en prueba1 y prueba2 respectivamente}
{Comparamos las letras generadas aleatoriamente con las que ha metido el usuario.}
if (prueba1 = letra1 and prueba2 = letra2) {Si ambas letras son iguales}
then write('FINAL DEL JUEGO.... Enhorabuena.') {Decimos por pantalla que hemos ganado y cerramos programa.}
else{Si las letras no son iguales}
Write('No es la combinacion correcta'); {Decimos que no es correcto, sumamos +1 a los intentos y volvemos al principio del bucle}
intentos := intentos + 1;{Si se acaban los intentos lo decimos por pantalla y terminamos}
write('FINAL DEL JUEGO.... Lo siento,la palabra era:',letra1,letra2);
end;
El juego consiste en adivinar una palabra compuesta de dos letras mayúsculas, la primera será una vocal obligatoriamente y la segunda deberá ser distinta de la primera (no se incluye la Ñ) generada aleatoriamente por parte del computador. Teniendo el usuario 15 intentos para adivinarla.
Cuando el usuario introduzca su palabra (dos caracteres), el programa debera informar del resultado del intento : se ha acertado o no la vocal; y en el segundo carácter en el caso que no haya acertado se mostrará si es mayor o menor a la oculta.
Al final del programa se debera mostrar la causa de finalización del juego : se han gastado los intentos o se ha acertado. En el caso que no se haya acertado, se mostrará la pareja oculta.
Como hay espacio suficiente en pantalla, los mensajes de cada intento deberán permanecer en ella durante todo el desarrollo del juego.
tengo una parte hecha, pero me está dando errores y no se si voy por buen camino... alguien podría ayudarme? es urgente con esto salvaría la asignatura.
Esto es lo que he ido haciendo:
program pareja_oculta;
uses CRT;
const NCOL=80;
var
i,j:byte;
letra1:char;
letra2:char; {las letras a adivinar}
auxInt:integer; {bucles y operaciones}
prueba1:char;
prueba2:char;
intentos: integer;
begin
(**PRESENTACIÓN**)
TextColor (red);
TextBackground (white);
clrscr;
for i:=1 to 3 do
for j:=1 to NCOL do write ('*');
gotoxy(25,2);
write (' PAREJA OCULTA: valor+.... ');
{GENERACION DE LA PRIMERA LETRA}
randomize; {valor distinto}
auxInt:= random (5);
{Funcion para escoger un numero aleatorio entre 0 y 4 (la primera letra a de ser vocal)
Condicional para elegir la vocal. Si aux = 0 escogemos la A, si aux = 1 la E, etc.}
if(auxInt = 0) then
letra1 := 'A';
if (auxInt = 1)then
letra1 := 'E';
if (auxInt = 2)then
letra1 := 'I';
if (auxInt = 3)then
letra1 := 'O';
if (auxInt = 4) then
letra1 := 'U';
begin
(**GENERACION DE LA SEGUNDA LETRA**)
letra2 := letra1; {igualamos ambas letras para que entre en el bucle}
while(letra1 = letra2) do {no se saldra del bucle y se generaran nuevas letras hasta que sean distintas }
randomize; {valor distinto}
letra2:=char random (26)+65;
{ La funcion elige aleatoriamente un valor entre 0 y 25 (tenemos 26 letras posibles).Despues sumamos 65 porque las letras van del 65 al 90 en codigo ASCII. A -> 65, Z -> 90}
intentos:=0;
while(intentos < 15) do {El bucle se repetira mientras el numero de intentos sea distinto de 15 }
write (intentos); {Muestra el mensaje en pantalla}
readln(prueba1, prueba2); {El usuario mete dos letras y las guarda en prueba1 y prueba2 respectivamente}
{Comparamos las letras generadas aleatoriamente con las que ha metido el usuario.}
if (prueba1 = letra1 and prueba2 = letra2) {Si ambas letras son iguales}
then write('FINAL DEL JUEGO.... Enhorabuena.') {Decimos por pantalla que hemos ganado y cerramos programa.}
else{Si las letras no son iguales}
Write('No es la combinacion correcta'); {Decimos que no es correcto, sumamos +1 a los intentos y volvemos al principio del bucle}
intentos := intentos + 1;{Si se acaban los intentos lo decimos por pantalla y terminamos}
write('FINAL DEL JUEGO.... Lo siento,la palabra era:',letra1,letra2);
end;
Valora esta pregunta


0