Jump to content
Fórum Script Brasil
  • 0

Ajuda com Exercicio em Delphi - Jogo do Adivinha.


Mateus Mondin

Question

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 to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...