Elaboración en Pascal del juego del Ahorcado

Anuncio
P.10.6.− Escriba un programa para ejecutar el juego del ahorcado. La palabra que se debe adivinar no
tendrá más de 10 caracteres. Por cada carácter que se introduzca que no pertenezca a la palabra, se
visualizará en pantalla uno de los siguientes caracteres `OI/\' hasta que se forme la figura siguiente,
momento en que se habrá perdido el juego. Los caracteres que se adivinen aparecerán en pantalla en la
posición que ocupan en la palabra.
Figura del ahorcado o
/I\
I
/\
program ahorcado;
uses
crt;
type
cad=string[10];
var
palabra,auxi,adi:cad;
letra:char;
posi,l:integer;
procedure comienzo(var palabra,auxi,adi:cad;var l:integer);
var
i:integer;
begin
gotoxy(25,10);
writeln('JUEGO DEL AHORCADO');
writeln('Escribe la palabra a adivinar: ');
readln(palabra);
l:=length(palabra);{LONGITUD DE LA PALABRA A ADIVINAR}
1
auxi:=palabra;
adi[0]:=chr(l); {INDICO EL TAMA¥O DE LA CADENA QUE VOY ADIVINANDO}
for i:=1 to l do
adi[i]:='_'; {LLENO DICHA PALABRA CON _ EN CADA LETRA}
clrscr;
end;
procedure acierto(auxi:cad;var posi:integer;letra:char);
var
n:integer;
begin
delete(auxi,1,posi);{BORRA HASTA DONDE HA ENCONTRADO LA LETRA}
n:=posi;
posi:=pos(letra,auxi);{BUSCA LA LETRA EN EL NUEVO TROZO DE PALABRA}
if posi<>0 then
posi:=posi+n;{SI HA ENCONTRADO OTRA POSICION,SE LA SUMA A LA ANTERIOR}
end;
procedure dibujo(p:integer);
var
parte:string[7];
f,c:integer;
begin
parte:='O/I\I/\'; {DIBUJO DEL AHORCADO}
case p of {DEPENDIENDO DEL N§ DE FALLOS,ESCRIBE UNA PARTE DEL MU¥ECO}
1 : begin
f:=1; c:=2;
end;
2
2 : begin
f:=2; c:=1;
end;
3 : begin
f:=2; c:=2;
end;
4 : begin
f:=2; c:=3;
end;
5 : begin
f:=3; c:=2;
end;
6 : begin
f:=4; c:=1;
end;
7 : begin
f:=4; c:=3;
end;
end;
gotoxy(7+c,18+f);
write(parte[p]);
end;
procedure pregunta(var letra:char;var posi:integer;var adi,auxi:cad;palabra:cad);
var
z,p:integer;
begin
3
z:=1;
p:=1;
repeat
gotoxy(5,2);
writeln('Dime una letra');
readln(letra);
posi:=pos(letra,palabra); {CALCULA POSICION DE LA LETRA EN LA PALABRA}
writeln('posicion: ',posi);
if posi<>0 then {SI SE HA ENCONTRADO SIGUE BUSCANDO EN LA PALABRA}
repeat
adi[posi]:=letra;
gotoxy(10,10);
write(adi); {MUESTRA LA PALABRA QUE VAMOS DICIENDO}
acierto(auxi,posi,letra);
writeln;
until (posi=0)
else {SI NO ESTA ESA LETRA EN LA PALABRA...}
begin
gotoxy(3,14);
writeln('LETRAS QUE NO PERTENECEN A LA PALABRA:');
gotoxy(5+z,15);
write(letra); {VA MOSTRANDO POR PANTALLA LAS LETRAS}
z:=z+2;
dibujo(p);{Y EL DIBUJO DEL AHORCADO}
p:=p+1;
end;
4
until (adi=palabra) or (p=8);{HASTA ADIVINARLA O COMPLETAR EL MU¥ECO}
writeln;
end;
begin {PROG. PPAL}
clrscr;
comienzo(palabra,auxi,adi,l);{DEVUELVE LA PALABRA,AUXILIAR Y LONGITUD}
writeln('LA PALABRA A ADIVINAR TIENE: ',l,' LETRAS');
pregunta(letra,posi,adi,auxi,palabra);{VA PIDIENDO LAS LETRAS}
if palabra=adi then
begin
gotoxy(20,20);
writeln('---- HAS GANADO !!!!!');
end
else
begin
writeln('Has perdido,la palabra era: ',palabra);
gotoxy(20,20);
writeln('---- AHORCADO !!!!');
end;
READKEY
end.
5
Descargar