Ir ao conteúdo
  • Cadastre-se

Izacael.Silva

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

posts postados por Izacael.Silva

  1. Boa tarde a todos pessoal sou novo aqui no canal e queria pedir uma ajuda estou fazendo esse trabalho importante, porém não estou conseguindo colocar uma estrutura para evitar que a mesma palavra seja escolhida por outros jogadores nesse pequeno jogo e mostre em tela. por favor ajudem !!!!

     

    Program AV2; // Nome do programa.
      var  //Declaração de variáveis.
    p,h:string; //Variável que armazena palavras.
    le,r:char; //Variável que representa caracteres.
    enc,fim:boolean; //Variável que verifica condição.
    ac,er,tl:integer; //Variável que armazena números inteiros.
     
    //Desenha da tela
    procedure menu; //Criação de um procedimento (menu).
    begin //Começo do procedimento (menu).
    clrscr; //Comando para limpar a tela.
    textcolor(white); //Cor do texto: Branca.
    textbackground(red); //Cor de fundo: Vermelho.
    gotoxy(15,10);write('==========================================='); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,11);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,12);write('|   Digite a palavra:[                  ] |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,13);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,14);write('|   Advertência [                   ]     |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,15);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,16);write('|   Historico [                     ]     |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,17);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,18);write('|   Palavra:                              |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,19);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,20);write('|   Digite a letra: [   ]                 |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,21);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,22);write('|   Acertos:                              |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,23);write('|   Erros:                                |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
      gotoxy(15,24);write('|                                         |'); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    gotoxy(15,25);write('==========================================='); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada)|Write(Comando que mostra os dados na tela).
    end; //Fim do procedimento
     
      //Substitui a letra por asterisco e apresenta o total de letras da palavra. 
    procedure asterisco; //Criação do procedimento (asterísco).
    begin //Começo do procedimento (asterísco).
    fim:=false; //Variável começa como falsa. 
    menu; //Chamar o procedimento (menu).
    gotoxy(38,12); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    while fim=false do //Enquanto fim for igual a falso, faça:.
    begin //Começo do bloco do procedimento.
    le:=readkey; //Esperar o usuário digitar a palavra.      
        if le<>#13 then //Se o número de letras for diferente de 13, então.
    begin //Começo de um bloco.
    write('*'); //Substituir a palavra por asteríscos.
    p:=p+le; //Atribuição de valores para a variável.
    end //Final de uma condição.
    else //Início de outra condição (se não).
    fim:=true; //Variável termina como verdadeira.
    end; //Fim do bloco do procedimento.
    tl:=length(p); //Atribuição de valor a variável.
    ac:=0; //Dizer que a variável começa com zero.
    er:=0; //Dizer que a variável começa com zero.
    h:=''; //Dizer que a variável não tem informações.
    gotoxy(28,22);write(ac); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    gotoxy(26,23);write(er); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    end; //Fim do procedimento (asterísco).
     
    //Coloca os traços da palavra
    procedure tracejar(p:string); //Criação do procedimento (tracejar).
    var //Declaração de variáveis.
    y:integer; //Variável que armazena números inteiros.
    begin //Começo do procedimento (tracejar).
    gotoxy(27,18); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    for y:=1 to length(p) do //Contagem da quantidade de letras.
         write (' _'); //Escrever os traços.     
    end; //Fim do procedimento (tracejar).
     
    //Verifica se a letra consta no histórico
    function consultarhistorico(h:string;le:char):boolean; //Criação de uma função.
    var //Declaração de variáveis
    x:integer; //Variável que armazena números inteiros.
    enc:boolean; //Variável que verifica condição.
    begin //Começo da função.
    enc:=false; //Variável começa como falsa.
    for x:=1 to length(h) do //Executar até o x ter o valor da variável h.
    if upcase(h[x])=upcase(le) then //Se h for igual a le, então... 
    begin //Criação de um bloco na função.
    enc:=true; //Variável terminando verdadeira.
    h:=h+upcase(le); //Transformar todas as letras minúsculas em maiúsculas.
    end; //Fim do bloco na função.
    consultarhistorico:=enc; //Atribuição de valor a função.
    end; //Fim da função.
     
    //Adiciona acertos, erros e histórico
    procedure verificar(pa:string;le:char); //Criação de um procedimento.
    var //Declaração de variáveis.
    p,x:integer; //Variável que armazena números inteiros.
    enc:boolean; //Variável que verifica condição.
    begin //Começo do procedimento.
    enc:=false; //Variável começando falsa.
    for x:=1 to length(pa) do //Executar até o x ter o valor da variável pa.
    if upcase(pa[x])=upcase(le) then //Se pa[x] for igual a le, então...
    begin //Criação de um bloco no procedimento.
    inc(ac); //iniciar contagem da variável.
    enc:=true; //Variável terminando verdadeira.
    p:=x*2; //Atribuição de valor a variável p (x multiplicado por 2).
    gotoxy(26+p,18); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    write(upcase(le)); //Escrever a palava com letras maiúsculas.
    gotoxy(33,14); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    write('Você acertou'); //Write(Comando que mostra os dados na tela).
    end; //Fim de um bloco no procedimento.
    h:=h+upcase(le); //Atribuição de valor para a variável h.
    if enc=false then //Se enc for falso, então...
    begin //Começo de um bloco.
    gotoxy(33,14); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    write('Você errou   '); //Write(Comando que mostra os dados na tela).
    inc(er); //iniciar contagem da variável.
    end; //Fim de um bloco.
    gotoxy(28,22);write(ac); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    gotoxy(26,23);write(er); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    gotoxy(31,16);write(h);  //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
     
    if ac=tl then //Se ac=tl então...
      begin //Criação de um bloco no procedimento.
         gotoxy(32,24); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    write('Jogar novamente S/N [   ]'); //Write(Comando que mostra os dados na tela).
    gotoxy(54,24); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    r:=readkey; //Esperar o usuário digitar uma tecla.
      end; //Fim do bloco no procedimento.
    end; //Fim do procemento.
     
    //Repetir o jogo.
    procedure iniciar;//Criação do procedimento (iniciar).
    begin //começo do procedimento (iniciar).
      p:=''; //Dizer que a variável não tem informações.
    menu; //Chamar o procedimento (menu).
       gotoxy(38,12); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
       asterisco; //Chamar o procedimento (asterico).
       tracejar(p); //Chamar o procedimento (tracejar).
    end; //Fim do procedimento (iniciar).
     
    Begin //Começo.
      r:='S'; //Atribuição de valor para a variável r.
    iniciar; //Chamar o procedimento iniciar.
    repeat //Repetir
    if (ac=tl)and(upcase®='S')then iniciar; //Se ac=tc e r=s repetir o procedimento iniciar.
    gotoxy(37,20); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    le:=readkey; //Esperar o usuário apertar uma tecla para atribuir a variável.
    if consultarhistorico(h,le)=true then //Se a função for verdadeira faça...
    begin //Criação de um bloco.
    gotoxy(31,16); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    write(h); //Write(Comando que mostra os dados na tela).
    end //Fim de um bloco.
    else //Senão (começo de outra condição).
    verificar(p,le); //Chamar o procedimento (verificar). 
    until (ac=tl)and(upcase®='N'); //Repetir até ac=tl e r=N. 
    clrscr; //Comando para limpar a tela.
    gotoxy(15,18); //Gotoxy(Comando que indica o local onde os dados deve ser mostrada).
    write('Game Over'); //Write(Comando que mostra os dados na tela).
    readkey; //Esperar o usuário apertar uma tecla.
    End. //Fim do algorítmo.
     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!