#+title: Shell Script na Prática
#+author: Blau Araujo
#+email: blau@debxp.org
* Desafio 3: Jogo da adivinhação
** Objetivos
- Estrutura de decisão
- Números aleatórios
- Operação de módulo (resto)
- Repetições condicionais
- Execução de comandos em paralelo
** Enunciado
No jogo da adivinhação, a pessoa jogadora tem que adivinhar um número oculto
entre 0 e 100 que é gerado aleatoriamente pelo programa. A mensagem inicial
deve ser:
#+begin_example
JOGO DA ADIVINHAÇÃO
#+end_example
O /prompt/ da entrada de cada palpite deve ser:
#+begin_example
Digite um número entre 0 e 100:
#+end_example
Se o palpite for menor do que o número oculto, o programa deve imprimir:
#+begin_example
Baixo demais.
Digite um número entre 0 e 100:
#+end_example
Se for maior, a mensagem será:
#+begin_example
Alto demais.
Digite um número entre 0 e 100:
#+end_example
Acertando, o programa termina imprimindo a mensagem:
#+begin_example
Parabéns! Você acertou com tentativas!
#+end_example
Onde ~~ deve ser o número de palpites dados.
** Evolução 1
Em vez de terminar diretamente, o programa deve perguntar:
#+begin_example
Quer jogar novamente (s/N)?
#+end_example
Onde a opção padrão, teclando ~[Enter]~, será ~N~ (de "não"). Caso seja teclado
~s~ (maiúsculo ou minúsculo), o terminal deve ser limpo.
** Evolução 2
A cada /prompt/ de palpite, se for digitado ~q~ (maiúsculo ou minúsculo),
o jogo deve terminar com a mensagem:
#+begin_example
Que vergonha... Vaza!
#+end_example
** Evolução 3
Ao imprimir a mensagem de acerto, um pequeno áudio de vitória deve ser
tocado.
Ao imprimir a provocação final, um áudio de galinhas cacarejando deve
ser tocado. Esse mesmo áudio deve ser tocado se a pessoa jogadora decidir
não jogar novamente.