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

Ajuda com Exercicio em Delphi - Jogo do Adivinha.


Mateus Mondin

Pergunta

Boa tarde.

Estou tentando fazer um exercicio de delphi porem estou encontrando uma certa dificuldade. Se chama jogo do adivinha.

Comecei estudar programção e desenvolvimento de sistemas e estou encontrando uma certa dificuldade. Se alguém puder me ajudar, não resolvendo unicamento o exercicio, mas se tiver como explicar o desenrolar do programa eu fico muito grato.

Desde já agradeço quem puder me ajudar, Deus abençoe.

Segue abaixo a descrição do exercicio.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Jogo de Adinhação de Números

Desenvolva um aplicativo em Pascal que implemente um jogo de adivinhação.

O seu programa deve solicitar ao usuário o seu nome para que ele possa ser tratado de forma particular. Toda mensagem exibida ao usuário deste ponto em diante deve dirigir-se a ele pelo nome.

A seguir temos uma sugestão de etapas para facilitar o seu desenvolvimento.

Primeira Etapa do Desenvolvimento

Desenvolva a parte de solicitação do nome do usuário, que será uma informação do tipo (STRING).

Solicite ao usuário o nível de jogo que ele deseja. O nível de jogo é um número de 1 a 3 que determina a faixa de valores na qual está o número a ser adivinhado.

Nível 1 - números de 0 a 10

Nível 2 - números de 0 a 30

Nível 3 - números de 0 a 100

Sorteie um número aleatório para que o usuário possa armazená-lo.

Solicite ao usuário um número até que ele acerte o número sorteado pelo computador.

Segunda Etapa do Desenvolvimento

Altere o programa para que o nível indicado pelo usuário determine, além dos limites da faixa de valores na qual está o número a ser adivinhado, a quantidade de chances que ele terá para adivinhar o número, ficando os limites da seguinte forma:

Nível 1 - números de 0 a 10, com chances infinitas.

Nível 2 - números de 0 a 30, com 15 chances para acetar.

Nível 3 - números de 0 a 100, com 15 chances para acertar.

Solicite ao usuário um número até que ele acerte ou se esgotem as suas chances.

Terceira Etapa do Desenvolvimento

Após desenvolver a base do jogo, implemente nele dicas como quente e frio, fervendo e gelado, se possivel dando indicações visuais mesmo que você esteja desenvolvendo no ambiente de Console.

Fervendo - O número indicado pelo usuário está na faixa de 2 valores acima ou abaixo do valor sorteado pelo computador. Ex: Se o computador sorteou o número 45, o usuário está "Fervendo" se o valor indicado por ele for entre 43 e 47 inclusive ambos.

Quente - O número indicado pelo usuário está na faixa de 5 valores acima ou abaixo do valor sorteado pelo computador e não está na faixa de Fervendo.

Frio - O número indicado pelo usuário está na faixa de 10 valores acima ou abaixo do valor sorteado pelo computador e não está na faixa do Quente.

Gelado - O numero indicado pelo usuário não está em nenhuma das faixas anteriores.

Quarta Etapa do Desenvolvimento

Após o Término do Jogo, pergunte ao usuário se ele deseja jogar novamente (Sim ou Não)?

Após cada chute errado usuário, pergunte se ele deseja desistir do jogo(Sim ou Não)?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Jhonas, brigadão cara, já comecei ler e vi as comprações.

Vou fazer o tentar fazer o exercicio depois posto aqui o resultado.

Muito Obrigado, Deus te abençoe.

Forte Abraço.

De qualquer quer forma fico aberto a mais links didaticos como esse.

Link para o comentário
Compartilhar em outros sites

  • 0

outro exemplo:

Faça um programa que gere um número aleatório entre 0 e 10 e o usuário terá 5 chances para adivinhar este número.

Program cinco_chances_para_advinhar;

var

x,n,i,cont,lin,col: integer;

begin

randomize;
x:=random(11);
gotoxy(5,5);
writeln(‘Você tem 5 chances para adivinhar um número de 1 a 10 que será sorteado:’);
cont:=0;
repeat
begin
for col:=1 to 80 do
begin
gotoxy(col,1);
write(‘*’);
gotoxy(col,25);
write(‘*’);
end;
for lin:=1 to 25 do
begin
gotoxy(1,lin);
writeln(‘*’);
gotoxy(80,lin);
writeln(‘*’);
end;
end;
cont:=cont+1;
gotoxy(25,7);
writeln(‘Entre com um número de 0 a 10′);
readln(n);
clrscr;
gotoxy(10,5);
if n=x then
writeln(‘Parabéns você acertou o número!!! que é: ‘,x)
else
writeln(‘O número não confere,você tem mais ‘,5-cont,’ chances para acertar’);

until (cont=5) or (n=x);
gotoxy(30,12);
writeln(‘FIM!’);

end.

ou voce pode pesquisar na net

http://www.google.com.br/search?hl=pt-BR&a...j5j1l9l0.frgbld.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Eai jhonas, bele?

Então, eu tentei fazer o sorteio, so que pro clrscr funcionar precisa do console e quando adiciono o programa da erro e não roda.

O gotoxy é a mesma coisa.

Programação é bem complicada de inicio em.

outro exemplo:

Faça um programa que gere um número aleatório entre 0 e 10 e o usuário terá 5 chances para adivinhar este número.

Program cinco_chances_para_advinhar;

var

x,n,i,cont,lin,col: integer;

begin

randomize;
x:=random(11);
gotoxy(5,5);
writeln(‘Você tem 5 chances para adivinhar um número de 1 a 10 que será sorteado:’);
cont:=0;
repeat
begin
for col:=1 to 80 do
begin
gotoxy(col,1);
write(‘*’);
gotoxy(col,25);
write(‘*’);
end;
for lin:=1 to 25 do
begin
gotoxy(1,lin);
writeln(‘*’);
gotoxy(80,lin);
writeln(‘*’);
end;
end;
cont:=cont+1;
gotoxy(25,7);
writeln(‘Entre com um número de 0 a 10′);
readln(n);
clrscr;
gotoxy(10,5);
if n=x then
writeln(‘Parabéns você acertou o número!!! que é: ‘,x)
else
writeln(‘O número não confere,você tem mais ‘,5-cont,’ chances para acertar’);

until (cont=5) or (n=x);
gotoxy(30,12);
writeln(‘FIM!’);

end.

ou voce pode pesquisar na net

<a href="http://www.google.com.br/search?hl=pt-BR&source=hp&q=jogo+do+adivinha+pascal&gbv=2&o que=jogo+do+adivinha+pascal&aq=f&aqi=&aql=&gs_l=hp.3...2053l12849l0l13229l19l18l0l6l6l0l321l1882l0j3j5j1l9l0.frgbld" target="_blank">http://www.google.com.br/search?hl=pt-BR&a...j5j1l9l0.frgbld</a>.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Eai jhonas, tudo certo?

Olha só como ficou o programa. O que voce acha?

Tem como melhorar mais alguma coisa ?

program JogoDoAdivinha;

{$APPTYPE CONSOLE}

uses

SysUtils, console;

Var

Nome : String;

Numero : Integer;

numeroMAX : Integer;

nivel : Integer;

palpite : integer;

_chances : integer;

querDesistir : boolean;

resposta : string;

querContinuar : boolean;

begin

// precisamos inicializar algumas variaveis antes de começar o programa

randomize;

querContinuar := true;

gotoxy(20,10);

writeln(' -----------------------------------');

gotoxy(20,11);

writeln(' - Bem Vindo ao Jogo do Adivinha. -');

gotoxy(20,12);

writeln(' -----------------------------------');

//writeln(''); pula linhas

writeln('');

writeln('');

// tratamento especial.

gotoxy(20,14);

write('Digite o seu nome.');

readln (Nome);

repeat // repeat serve para a opção de iniciar novamento o jogo, ao acertar

clrscr;

querDesistir := false;

writeln ('Descricao:');

writeln (Nome,',esse jogo possui 3 niveis diferentes, e voce tem como objetivo acertar');

writeln ('um numero aleatorio num intervalo de numeros do nivel que voce escolher.');

repeat

writeln('');

writeln('');

writeln('');

gotoxy(10,5);

writeln ('------------------------------------------');

gotoxy(10,6);

writeln ('- Nivel - 1 ......... numero de 0 a 10 -');

gotoxy(10,7);

writeln ('- Nivel - 2 ......... numero de 0 a 30 -');

gotoxy(10,8);

writeln ('- Nivel - 3 ......... numero de 0 a 100 -');

gotoxy(10,9);

writeln ('------------------------------------------');

gotoxy(10,12);

writeln('---------------------------------------------------');

gotoxy(10,13);

writeln('- Nivel - 1 Voce tem infitas chances para acertar -');

gotoxy(10,14);

writeln('- Nivel - 2 Voce tem 15 chances para acertar -');

gotoxy(10,15);

writeln('- Nivel - 3 Voce tem 15 chances para acertar -');

gotoxy(10,16);

writeln('---------------------------------------------------');

writeln('');

gotoxy (10, 20);

writeln ('Digite digite o numero do nivel que voce quer entrar');

readln(nivel);

// caso usario digitar um numero diferente dos niveis existentes

if (palpite >=1) or (palpite <=3)then

begin

gotoxy(10, 22);

writeln ('Digite do NIVEL que voce quer entrar!');

end;

clrscr;

// caso o usario digitar um numero fora dos niveis existentes

if (nivel<>1)and (nivel<>2)and (nivel<>3) then

writeln ('Digite um numero compativel com os niveis existentes!');

until (nivel=1) or (nivel=2) or (nivel=3);

// niveis criados e atribuidos seus valores

if (nivel=1) then

numeroMAX := 10;

if (nivel=2)then

begin

numeroMAX := 30;

_chances := 15;

end;

if (nivel=3) then

begin

numeroMAX := 100;

_chances := 15;

end;

//faz o numero aleatorio em numeroMAX

numero := random(numeroMAX);

// colocar como comentario writeln(numero) -> usa para testar

writeln(numero,',''lembrar de apagar isso depois');

repeat

writeln ('Digite seu palpite');

readln (palpite);

_chances := _chances -1;

writeln('');

if (palpite < numero+3) and (palpite > numero -3) and (palpite <> numero) then

Writeln('Esta fervendo!!!1!!')

else

if (palpite < numero+6) and (palpite > numero -6)then

Writeln('Esta quente!')

else

if (palpite < numero+10) and (palpite > numero -10)then

Writeln('Esta frio.')

else

writeln('Esta gelado...');

// caso o palpite seja diferente do numero sorteado o usario terá a opção

// de desistir do jogo, [boolean]if numero <> palpite then

begin

writeln('');

writeln('Quer desistir??[s/N]');

readln(resposta);

if (resposta = 's') or (resposta = 'S') then

querDesistir := true;

// caso o usario resolver desistir a seguinte mesanegm irá aparecer

if (resposta = 's') or (resposta = 'S') then

begin

clrscr;

gotoxy(20,5);

writeln('Muito Obrigado por jogar!!');

writeln('');

gotoxy(20,7);

writeln('===================================================');

gotoxy(20,8);

writeln('*** Aperte <ENTER> para concluir a finalizacao ***');

gotoxy(20,9);

writeln('===================================================');

end;

end;

//esperar cara digitar

// se o cara apertou enter

// variavel passada no readln := tudo q o cara digitou

until (palpite = numero) or (_chances = 0) or (querDesistir = true);

// mensagem atribuida através de um variavel boolean igual a opção anterior

if (palpite = numero) then

writeln ('Parabens voce acertou!');

if (_chances = 0) then

writeln('Suas chances acabaram.');

writeln('Deseja iniciar um novo jogo?[s/N]');

readln (resposta);

if (resposta = 'n') or (resposta = 'N') then

querContinuar := false;

if (resposta = 's') or (resposta = 's') then

begin

clrscr;

gotoxy(20,5);

writeln('O jogo voltara ao menu principal.');

writeln('');

gotoxy(20,7);

writeln('===================================================');

gotoxy(20,8);

writeln('========== Aperte <ENTER> para voltar ===========');

gotoxy(20,9);

writeln('===================================================');

end;

readln;

until (querContinuar = false) ;

end.

Link para o comentário
Compartilhar em outros sites

  • 0

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
Var
Nome : String;
Numero : Integer;
numeroMAX : Integer;
nivel : Integer;
palpite : integer;
_chances : integer;
querDesistir : boolean;
resposta : string;
querContinuar : boolean;
begin

// precisamos inicializar algumas variaveis antes de começar o programa
randomize;
querContinuar := true;

writeln(' -----------------------------------');
writeln(' - Bem Vindo ao Jogo do Adivinha. -');
writeln(' -----------------------------------');
//writeln(''); pula linhas
writeln('');
writeln('');
// tratamento especial.

write('Digite o seu nome.');
readln (Nome);

repeat // repeat serve para a opção de iniciar novamento o jogo, ao acertar

clrscr;
querDesistir := false;
writeln ('Descricao:');
writeln (Nome,',esse jogo possui 3 niveis diferentes, e voce tem como objetivo acertar');
writeln ('um numero aleatorio num intervalo de numeros do nivel que voce escolher.');
repeat
writeln('');
writeln('');
writeln('');
writeln ('------------------------------------------');
writeln ('- Nivel - 1 ......... numero de 0 a 10 -');
writeln ('- Nivel - 2 ......... numero de 0 a 30 -');
writeln ('- Nivel - 3 ......... numero de 0 a 100 -');

writeln ('------------------------------------------');
writeln('---------------------------------------------------');
writeln('- Nivel - 1 Voce tem infitas chances para acertar -');
writeln('- Nivel - 2 Voce tem 15 chances para acertar -');
writeln('- Nivel - 3 Voce tem 15 chances para acertar -');

writeln('---------------------------------------------------');
writeln('');
writeln ('Digite digite o numero do nivel que voce quer entrar');
readln(nivel);

// caso usario digitar um numero diferente dos niveis existentes
if (palpite >=1) or (palpite <=3)then
begin
writeln ('Digite do NIVEL que voce quer entrar!');
end;

clrscr;
// caso o usario digitar um numero fora dos niveis existentes
if (nivel<>1)and (nivel<>2)and (nivel<>3) then
writeln ('Digite um numero compativel com os niveis existentes!');
until (nivel=1) or (nivel=2) or (nivel=3);
// niveis criados e atribuidos seus valores
if (nivel=1) then
numeroMAX := 10;
if (nivel=2)then
begin
numeroMAX := 30;
_chances := 15;
end;

if (nivel=3) then
begin
numeroMAX := 100;
_chances := 15;
end;

//faz o numero aleatorio em numeroMAX
numero := random(numeroMAX);

// colocar como comentario writeln(numero) -> usa para testar
writeln(numero,',''lembrar de apagar isso depois');

repeat

writeln ('Digite seu palpite');
readln (palpite);
_chances := _chances -1;

writeln('');

if (palpite < numero+3) and (palpite > numero -3) and (palpite <> numero) then
Writeln('Esta fervendo!!!1!!')
else

if (palpite < numero+6) and (palpite > numero -6)then
Writeln('Esta quente!')
else

if (palpite < numero+10) and (palpite > numero -10)then
Writeln('Esta frio.')

else
writeln('Esta gelado...');

// caso o palpite seja diferente do numero sorteado o usario terá a opção
// de desistir do jogo, [boolean]if numero <> palpite then
begin
writeln('');
writeln('Quer desistir??[S/N]');
readln(resposta);
if (resposta = 's') or (resposta = 'S') then
querDesistir := true;

// caso o usario resolver desistir a seguinte mesanegm irá aparecer

if (resposta = 's') or (resposta = 'S') then
begin
clrscr;

writeln('Muito Obrigado por jogar!!');
writeln('');
writeln('===================================================');
writeln('*** Aperte <ENTER> para concluir a finalizacao ***');
writeln('===================================================');
end;

end;


//esperar cara digitar
// se o cara apertou enter
// variavel passada no readln := tudo q o cara digitou

until (palpite = numero) or (_chances = 0) or (querDesistir = true);
// mensagem atribuida através de um variavel boolean igual a opção anterior

if (palpite = numero) then
writeln ('Parabens voce acertou!');

if (_chances = 0) then
writeln('Suas chances acabaram.');

writeln('Deseja iniciar um novo jogo?[S/N]');
readln (resposta);
if (resposta = 'n') or (resposta = 'N') then
querContinuar := false;

if (resposta = 's') or (resposta = 's') then

begin
clrscr;
writeln('O jogo voltara ao menu principal.');
writeln('');
writeln('===================================================');
writeln('========== Aperte <ENTER> para voltar ===========');
writeln('===================================================');
end;

readln;
until (querContinuar = false);
end.
Seu exercicio está bom, mas se voce puder usar outros comandos, dá pra enxugar mais o código OBS: esse comando esta no lugar errado ... verifique
if (palpite = numero) then
writeln ('Parabens voce acertou!');

abraço

Link para o comentário
Compartilhar em outros sites

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
      652k
×
×
  • Criar Novo...