Ir ao conteúdo
  • Cadastre-se
Izacael.Silva

Jogo da força pascalzim

Recommended Posts

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.
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×