ayuda con la elboracion del programa
Publicado por maritza mejia (1 intervención) el 08/10/2007 23:56:21
Necesito ayuda para la elaboracion del programa del AHORCADO o EL X-O les AGRADECERE mucho su colaboracion
Valora esta pregunta


0
with Ada.Text_IO; -- Para entrada/salida de texto
with Ada.Integer_Text_IO; -- Para entrada/salida de enteros aleatorios
with Ada.Strings.Unbounded; -- Para manipulación de cadenas
procedure Ahorcado is
package IO renames Ada.Text_IO;
package Rand renames Ada.Integer_Text_IO;
package Strings renames Ada.Strings.Unbounded;
type Palabra is new Strings.Unbounded.Unbounded_String;
MaxIntentos : constant := 7;
Palabras : constant array(1 .. 5) of Palabra := ("GATO", "PERRO", "CASA", "ARBOL", "AUTO");
function LeerLetra return Character is
Letra : Character;
begin
IO.Put("Introduce una letra: ");
IO.Get(Letra);
return Letra;
exception
when others =>
return LeerLetra;
end LeerLetra;
function EscogerPalabra return Palabra is
Indice : Integer := Rand.Random(Max => Palabras'Length') + 1;
begin
return Palabras(Indice);
end EscogerPalabra;
procedure JuegoAhorcado(PalabraSecreta : in Palabra) is
type LetrasAdivinadas is array(Character) of Boolean;
Adivinadas : LetrasAdivinadas := (others => False);
Intentos : Integer := 0;
begin
loop
IO.Put_Line("Palabra: " & PalabraSecreta.To_String);
declare
Letra : Character := LeerLetra;
begin
if not Adivinadas(Letra) then
Adivinadas(Letra) := True;
if not PalabraSecreta.Contains(Letra) then
Intentos := Intentos + 1;
end if;
end if;
end;
exit when Intentos = MaxIntentos or else PalabraSecreta'Length' = PalabraSecreta'Length' - PalabraSecreta'Length' + (PalabraSecreta'Length' * Integer'Image'(Adivinadas'Length'));
IO.Put_Line("Intentos restantes: " & Integer'Image'(MaxIntentos - Intentos));
end loop;
if Intentos = MaxIntentos then
IO.Put_Line("¡Perdiste! La palabra secreta era: " & PalabraSecreta.To_String);
else
IO.Put_Line("¡Ganaste! Has adivinado la palabra: " & PalabraSecreta.To_String);
end if;
end JuegoAhorcado;
begin
IO.Put_Line("¡Bienvenido al juego del ahorcado!");
loop
declare
Respuesta : Character;
begin
JuegoAhorcado(EscogerPalabra);
IO.Put("¿Deseas jugar de nuevo? (S/N): ");
IO.Get(Respuesta);
exit when Respuesta in "Nn";
end;
end loop;
IO.Put_Line("¡Gracias por jugar!");
end Ahorcado;