Pascal/Turbo Pascal - DEV PASCAL - JUEGO - URGE!

 
Vista:

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;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

DEV PASCAL - JUEGO - URGE!

Publicado por ramon (2158 intervenciones) el 17/12/2014 14:00:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{Mira tu programa arreglado un poco para que te ayude}
 
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;
salir : boolean;
letras : string[2];
 
 
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(24);
{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.}
 case auxint of
 0,5,10,15,20 : letra1 := 'A';
 1,6,11,16,21 : letra1 := 'E';
 2,7,12,17,22 : letra1 := 'I';
 3,8,13,18,23 : letra1 := 'O';
 4,9,14,19,24 : letra1 := 'U';
   end;
(**GENERACION DE LA SEGUNDA LETRA**)
 {igualamos ambas letras para que entre en el bucle}
 salir := false;
 while salir = false do {no se saldra del bucle y se generaran nuevas
letras hasta que sean distintas }
 begin
 auxint := random(25);
 letra2 := chr(ord(auxint) + 65);
 if letra2 <> letra1 then
 salir := true;
 end;
{ 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 := 1;
salir := false;
writeln;
writeln;
while (intentos < 15) and (salir <> true) do
begin
 {El bucle se repetira mientras el numero de
intentos sea distinto de 15 }
write(intentos,' '); {Muestra el mensaje en pantalla}
readln(letras); {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.}
 prueba1 := upcase(letras[1]);
 prueba2 := upcase(letras[2]);
if (prueba1 = letra1) and (prueba2 = letra2) {Si ambas letras son iguales}
then
  salir := true;
 if salir = true then
 begin
 writeln;
 writeln('FINAL DEL JUEGO.... Enhorabuena.'); {Decimos por pantalla que
hemos ganado y cerramos programa.}
  break;
 end;
  if letra1 = prueba1 then
  begin
    writeln(' Acertada La Bocal es : ',letra1);
  end;
  if letra2 > prueba2 then
     writeln('La Letra es Mayor')
  else
    writeln('La Letra es Menor');
 {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}
end;
  if salir <> true then
  begin
  writeln;
  writeln('FINAL DEL JUEGO.... Lo siento,la palabra era : ',letra1,' y ',letra2);
  writeln('Las Letras Son = ',letra1,' Y ',letra2);
  end;
  readkey;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar