Ir para conteúdo
Fórum Script Brasil
  • 0

Jogo da Forca pascalzim/devpascal


Universo

Pergunta

Ola,sou novo no fórum e também na área de programação e estou com uma dúvida e precisando de ajuda em um código que acredito eu ser simples, estou tentando executar um jogo da forca utilizando arquivo binário e parece que a variável palavraCerta não está recebendo nenhuma das palavras cadastradas, alguém poderia dar uma olhada no código e me apontar o erro(s) do código? segue o código abaixo:

 

 

Program pzim ;
type biblioteca = record
         palavra : string;
         dica : string;
end;
type declareg = file of biblioteca;
{------------------------------------------------------------------------------------------------}
procedure criarArquivo (var arquivoPalavras : declareg);
begin
        {$I-}
            reset(arquivoPalavras);
        if IOResult <> 0 then
        rewrite(arquivoPalavras);
    {$I+}
end;
{-----------------------------------------------------------------------------------------------}
procedure inserirPalavras (var arquivoPalavras : declareg);
var PeD : biblioteca;
        cont : integer;
begin
        for cont:= 1 to 2 do
    begin
                clrscr;
                write('Digite uma palavra: ');
                read(PeD.palavra);
                seek (arquivoPalavras, filesize(arquivoPalavras));
                write(arquivoPalavras,PeD);
                write('Digite uma dica: ');
                read(PeD.dica);
                seek (arquivoPalavras, filesize(arquivoPalavras));
                write(arquivoPalavras,PeD);
        end;
end;
{-----------------------------------------------------------------------------------------------}
procedure adivinhar(var arquivoPalavras : declareg);
var vetorpalav: array [1..2] of string;
    palavraCerta, palavraParcial:string;
    tentativa :Char;
    qtdTentativas, X, opc :Integer;
    acertouPalavra: Boolean;
begin  
qtdTentativas := 8;
   repeat
      writeln;
      writeln ('   Jogo da Forca');
      writeln;
      write (' Digite de 1 a 2 para escolher uma palavra: ');
      readln (opc);
   until (opc >= 1) and (opc <= 2);
   
   palavraCerta := vetorpalav[opc];

   for X := 0 to Length(palavraCerta) do
   begin
      if (palavraCerta[X] = ' ') then
         palavraParcial[X] := ' '
      else if (palavraCerta[X] = '-') then
         palavraParcial[X] := '-'
      else
         palavraParcial[X] := '*';
   end;

   repeat
      ClrScr;

      writeln;
      writeln (' ',palavraParcial);
      writeln;

      acertouPalavra := true;

      for X := 1 to Length (palavraCerta) do
         if palavraParcial[X] = '*' then
            acertouPalavra := false;

      if acertouPalavra = true then
      begin
         writeln (' Parabens, voce acertou a palavra.');
         readln;
         break;
      end
      else if qtdTentativas > 0 then
      begin
         writeln (' Voce tem ', qtdTentativas, ' tentativas restantes.');

         write (' Digite uma letra (letra minuscula): ');
         tentativa := readkey;
         if Pos(tentativa, palavraParcial) = 0 then
            for X := 1 to Length(palavraCerta) do
            begin
               if (palavraCerta[X] = tentativa) then
               begin
                  palavraParcial[X] := tentativa;
               end
               else if Pos(tentativa, palavraCerta) = 0 then
               begin
                  qtdTentativas := qtdTentativas - 1;
                  break;
               end;
            end
         else
            qtdTentativas := qtdTentativas - 1;
      end
      else
      begin
         writeln (' Voce perdeu, tente novamente.');
         readln;
         break;
      end;
      until tentativa = Chr(27);
end;
{----------------------------------------------------------------------}
procedure Menu;
var opcao : integer;
        arquivoPalavras : declareg;
begin
        assign(arquivoPalavras,'C:\Forca.bin');
        criarArquivo(arquivoPalavras);
        repeat
            clrscr;
        writeln(' Forca ');
        writeln('1 - Inserir Palavras');
        writeln('2 - Jogar');
        writeln('3 - Sair');
        writeln('Opcao: ');
        readln(opcao);
        case opcao of
                1: inserirPalavras(arquivoPalavras);
                2: adivinhar(arquivoPalavras);
        end;
     until opcao = 3;
     close(arquivoPalavras);
end;                        
            
            
Begin
        Menu;
End.

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...