sábado, 28 de junho de 2008

Jogo da Forca em Pascal

Deixei a identação de lado, pq aqui em html ele exije que eu coloque (' ') no início... E o jogo da forca é para aquelas pessoas que estão começando no mundo computacionístico e precisam de um trabalhinho desse em algorítmos.


program forcas;
uses crt;

var palavra,letra,linha,nome:string;
j,i,op,tam:integer;
arq:text;

procedure gravar;
begin
writeln;
writeln('Jogo Da Forca');
write('Palavra: ');
readln(palavra);
append(arq);
writeln(arq,palavra);
close(arq);
write('Ok!');
readln;
clrscr;
end;

procedure jogar;
var jogando:string;
final,jogadas,erro,y,palavra_jogo,x,w:integer;
begin
clrscr;
x:=0;
y:=0;
palavra_jogo:=0;
erro:=0;
palavra:=('');
jogando:=('');
reset(arq);
writeln;
writeln('Forca:');
writeln('Jogador - ',nome);
while not eof(arq) do
begin
readln(arq,palavra);
x:=x+1;
end;
close(arq);
randomize;
palavra_jogo:=random(x)+1;
y:=0;
reset(arq);
while not eof(arq) do
begin
readln(arq,linha);
y:=y+1;
if y=palavra_jogo then
jogando:=linha;
end;
j:=0;
tam:=length(jogando);
jogadas:=tam+6;
for i:=1 to tam do
begin
gotoxy(i,9);
write('_');
end;
repeat

for j:=1 to jogadas do
begin
gotoxy(33,8);
write('Letra: ');
readln(letra[j]);
w:=0;
for i:=1 to tam do
begin
if letra[j]=jogando[i] then
begin
gotoxy(i,8);
w:=1;
writeln(letra[j]);
i:=tam;
final:=final+1;
if final=tam then
begin
gotoxy(10,18);
writeln('Fim');
j:=jogadas;
end;
end
end;

if w=0 then
erro:=erro+1;
if erro=1 then
begin
gotoxy(39,10);
writeln('0');
end;
if erro=2 then
begin
gotoxy(39,11);
writeln('|');
end;
if erro=3 then
begin
gotoxy(38,11);
write('/');
end;
if erro=4 then
begin
gotoxy(40,11);
write('\');
end;
if erro=5 then
begin
gotoxy(38,12);
write('/');
end;
if erro=6 then
begin
gotoxy(40,12);
write('\');
end;
end;
gotoxy(33,14);
writeln('*** ',jogando,' ***');
until j=jogadas;
close(arq);
readln;
end;
procedure cadastro;
begin
clrscr;
gotoxy(30,10);
write('Nome do Jogador: ');
readln(nome);
readln;
end;

{...Programa Principal.....}

begin
clrscr;
gotoxy(40,10);
textcolor(1);
textbackground(7);
palavra:='';
nome:='';
letra:='';
assign(arq,'focas.txt');
{$I-} reset(arq);{$I+}
if Ioresult<>0 then
rewrite(arq);
repeat
gotoxy(30,10);
writeln('1.Registrar Palavra');
gotoxy(30,11);
writeln('2.Jogar');
gotoxy(30,12);
writeln('3.Dados do Jogador');
gotoxy(30,13);
writeln('4.Finalizar');
gotoxy(30,14);
write('Op‡ao:');
readln(op);
case op of
1:gravar;
2:jogar;
3:cadastro;
end;
clrscr;
until op=4;
readln;
end.

Que orgulho... :P

2 comentários:

Anônimo disse...

Use a tag pre no html... :-)

Ela deixa o texto exatamente como ele é, incluindo os espaços ;-)

Uma forca em Java e orientada a objeto seria muito mais interessante. Aceita o desafio?

Anônimo disse...

eii cara ta errado seu program valeu!!!;)