Ir para conteúdo
Fórum Script Brasil

Universo

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Universo

Universo's Achievements

0

Reputação

  1. 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!
×
×
  • Criar Novo...