nosleeps Posted November 28, 2015 at 06:26 PM Report #590164 Posted November 28, 2015 at 06:26 PM (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 November 28, 2015 at 06:27 PM by pwseo syntax highlight.
FMC Posted November 28, 2015 at 09:34 PM Report #590173 Posted November 28, 2015 at 09:34 PM (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 November 28, 2015 at 10:38 PM 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 - Â
nosleeps Posted November 28, 2015 at 09:42 PM Author Report #590174 Posted November 28, 2015 at 09:42 PM mas como e que eu fasso para repetir ate acertar
FMC Posted November 28, 2015 at 09:57 PM Report #590176 Posted November 28, 2015 at 09:57 PM (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 November 28, 2015 at 10:39 PM 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 - Â
thoga31 Posted November 28, 2015 at 10:52 PM Report #590181 Posted November 28, 2015 at 10:52 PM (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 November 28, 2015 at 10:53 PM by thoga31 Knowledge is free!
FMC Posted November 28, 2015 at 11:09 PM Report #590182 Posted November 28, 2015 at 11:09 PM 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 - Â
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now