Ir ao conteúdo
  • Cadastre-se

Jogo da força pascalzim


Posts recomendados

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.
 
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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!