Jump to content

Recommended Posts

Posted (edited)

Ola

Eu ando no curso de programacao e ainda tou no 2 mes e tou tentando fazer uma jogo de palpites para adivinhar o numero que foi escolhido aleatoriamente mas nao tou a conseguir fazer com que ele repita , ele ta me a escrever sempre a mesma coisa . Agradecia uma ajudinha obg 🙂

Program Jogos;
uses crt;
var c:char ;
n, num,tentativas,p:integer ;
begin

window(1,1,80,25);
Textbackground(Lightgreen);
clrscr;
textcolor(yellow);

gotoxy(26,2);
Writeln('Tabela de Jogos ');
gotoxy(20,4);

window(1,4,80,25);
Textbackground(lightgreen);
writeln('');
Textbackground(Lightgreen);
writeln(' 1 -> Jogo do Palpite' );
textcolor(green);
read(n) ;
if (n = 1) then

begin
clrscr;
textcolor(black);
write(' insira o seu palpite' );
readln(p);
tentativas:=0 ;

randomize;
num:= random (10)+1;

repeat;
tentativas:=tentativas+1;
if (num < p )
then
writeln(' o seu palpite esta errado, o seu numero e menor do que: ', p)
else if (num > p )
then
writeln(' o seu palpite esta errado, o numero correto e maior do que: ', p)
else
if num < p then
writeln(' o seu palpite esta correto', p);

until num = p;

readln;readln;
end;
end.
Edited by pwseo
syntax highlight.
Posted (edited)

Do que:

if num < p then
writeln(' o seu palpite esta correto', p);

Não deve ser?

if num = p then
writeln(' o seu palpite esta correto', p);

E o Repeat devia ser depois de:

if (n = 1) then

begin
clrscr;
textcolor(black);

Ou no menu!

Edited by thoga31
Tags code + GeSHi

"The greatest mistake you can make in this life is to be continually fearing you will make one."

Elbert Hubbard -

 

Posted (edited)

Testa assim não tenho agora o copilador:

Program Jogos;
uses crt;
var c:char ;
n, num,tentativas,p:integer ;
begin

window(1,1,80,25);
Textbackground(Lightgreen);
clrscr;
textcolor(yellow);

gotoxy(26,2);
Writeln('Tabela de Jogos ');
gotoxy(20,4);

window(1,4,80,25);
Textbackground(lightgreen);
writeln('');
Textbackground(Lightgreen);
writeln(' 1 -> Jogo do Palpite' );
textcolor(green);
read(n) ;
if (n = 1) then

begin

randomize;
num:= random (10)+1;

clrscr;
textcolor(black);
repeat;
write(' insira o seu palpite' );
readln(p);
tentativas:=0 ;




tentativas:=tentativas+1;
if (num < p )
then
writeln(' o seu palpite esta errado, o seu numero e menor do que: ', p)
else if (num > p )
then
writeln(' o seu palpite esta errado, o numero correto e maior do que: ', p)
else
if num = p then
writeln(' o seu palpite esta correto', p);

until num = p;

readln;readln;
end;
end.
Edited by thoga31
Correcção das tags

"The greatest mistake you can make in this life is to be continually fearing you will make one."

Elbert Hubbard -

 

Posted (edited)

@nossleeps, gostaria de anotar três coisas:

1) O teu código nem sequer deve compilar uma vez que tens erros de sintaxe, nomeadamente no ciclo repeat:

repeat;

2) Se queres que o pedido de palpite seja repetido, tens de colocar esse pedido dentro do ciclo.

write(' insira o seu palpite' );
readln(p);  // <-- onde pedes a aposta

// [...]

repeat;     // <-- onde o ciclo começa
tentativas:=tentativas+1;
if (num < p )
then
writeln(' o seu palpite esta errado, o seu numero e menor do que: ', p)
else if (num > p )
then
writeln(' o seu palpite esta errado, o numero correto e maior do que: ', p)
else
if num < p then
writeln(' o seu palpite esta correto', p);

until num = p;

O readln está fora do ciclo. A única coisa que tens dentro do ciclo são as mensagens relacionadas com a aposta. Por conseguinte, outra coisa não seria de esperar se não um ciclo infinito: se o valor de p não muda - não há nada dentro do ciclo que altere o seu valor -, o ciclo nunca vai parar.

3) Estás a usar e a abusar da unit crt - para que queres tanta cor, tanto clrscr e tanto gotoxy? Antes de "embelezar", o meu conselho é apostares na programação em si, ou seja, na resolução de problemas, na aplicação da lógica e na aprendizagem de técnicas de programação e da sua aplicação na linguagem em si.

@FMC, também gostaria de apontar duas coisas:

1) O erro de sintaxe mantém-se (eu sei que não tinhas compilador à mão, mas o erro de sintaxe não deixa de ser claro);

2) Convinha explicares a) o que alteraste e b) porque alteraste.

(isto esquecendo o facto de teres dado um código completo potencialmente corrigido e a trabalhar, algo que não é nosso objectivo aqui no P@P)

Cumprimentos.

Edited by thoga31

Knowledge is free!

Posted

Tens razão thoga31, eu não próxima vez vou tentar explicar as minhas alterações!

"The greatest mistake you can make in this life is to be continually fearing you will make one."

Elbert Hubbard -

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.