O
problema resume-se em:
1) sortear um número;
2) perguntar um número
para o usuário;
3) comparar esse números.
SuperLogo, xLogo, MegaLogo aprenda vai dt rotule [Adivinhe que número pensei?] un pt 45 ul rotule [Dica: É um número entre 1 e 50] atr "x 1 + sortnum 50 adivinha fim | Imagine aprender vai dt rotular [Adivinhe que número pensei?] un pt 45 ul rotular [Dica: É um número entre 1 e 50] atr "x 1 + sortear 50 adivinha fim |
FMSLogo aprenda vai ot rotule [Adivinhe que número pensei?] un pt 45 ul rotule [Dica: É um número entre 1 e 50] atr "x 1 + sorteie 50 adivinha fim |
Micromundos aprenda vai dt anuncie [Adivinhe que número pensei?] anuncie [Dica: É um número entre 1 e 50] atr "x 1 + sorteie 50 adivinha fim |
Acima, em azul, se tivéssemos feito sortear 50, o Logo sortearia números de 0 a 49. Usando 1 + sortear 50, o Logo devolverá um número de 1 a 50.
Agora, tratamos da lógica no procedimento
"adivinha". Ou seja, verificar se o palpite do usuário
é
igual ao que o Logo sorteou no procedimento "vai".
MegaLogo para adivinha atr "palpite pri ( leiacaixa [Que número você acha que eu pensei?][] ) se :x = :palpite [( caixa [Parabéns!][Acertou] ) pare] se :x < :palpite [( caixa [Eu pensei num número menor][Não foi dessa vez] )] ~ [( caixa [Eu pensei num número maior][Tente de novo!] )] adivinha fim |
![]() |
SuperLogo aprenda adivinha atr "palpite pri caixadequestão [][Que número você acha que eu pensei?] se :x = :palpite [mostrecaixamensagem [Acertou] [Parabéns!] pare] senão :x < :palpite [mostrecaixamensagem [Não foi dessa vez] [Eu pensei num número menor]] [ mostrecaixamensagem [Tente de novo!] [Eu pensei num número maior]] adivinha fim |
FMSLogo aprenda adivinha atr "palpite primeiro caixadequestão [][Que número você acha que eu pensei?] se :x = :palpite [mensagem [Acertou] [Parabéns!] pare] senão :x < :palpite [mensagem [Não foi dessa vez] [Eu pensei num número menor]] [ mensagem [Tente de novo!] [Eu pensei num número maior]] adivinha fim |
xLogo aprenda adivinha leia [Que número você acha que eu pensei?] "palpite atr "palpite pri :palpite se :x = :palpite [mensagem [Parabéns!] pare] se :x < :palpite [mensagem [Eu pensei num número menor]] [ mensagem [Eu pensei num número maior]] adivinha fim |
Micromundos aprenda adivinha pergunte [Que número você acha que eu pensei?] se :x = resposta [anuncie [Parabéns!] pare] sesenão :x < resposta [anuncie [Eu pensei num número menor]] [ anuncie [Eu pensei num número maior]] adivinha fim |
Imagine aprender adivinha atr "palpite primeiro ( lercaixa [Que número você acha que eu pensei?][] ) se :x = :palpite [( caixa [Parabéns!][Acertou] ) parar] seNão :x < :palpite [( caixa [Eu pensei num número menor][Não foi dessa vez] )] [( caixa [Eu pensei num número maior][Tente de novo!] )] adivinha fim |
Note que o procedimento adivinha será
repetido até que a pessoa consiga acertar o
número sorteado. Ele é interrompido pela
primitiva pare (quando a variável x
é igual à variável :palpite). O
procedimento é repetido porque escrevi no seu final a
palavra adivinha.
Há outras formas de criar esse laço. Sabe como?
Um desafio maior para esse jogo de adivinhações
é criar um contador para registrar quantas tentativas foram
necessárias até conseguir acertar o
número.