diff --git a/desafios/03/README.org b/desafios/03/README.org new file mode 100644 index 0000000..bd887b9 --- /dev/null +++ b/desafios/03/README.org @@ -0,0 +1,81 @@ +#+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.