S03 - Projeto: Programa de Memorização de Escrituras
Visão Geral
As pessoas geralmente tentam memorizar poemas ou passagens das escrituras. Um dos desafios que enfrentam é que elas querem esconder a escritura enquanto praticam, mas talvez não consigam recitar a escritura inteira de memória ainda.
Para ajudar a resolver esse problema e permitir que as pessoas memorizem melhor uma escritura, crie um programa que exiba a escritura completa e depois oculte algumas palavras de cada vez até que a escritura completa seja escondida.
Especificação
Requisitos Funcionais
Seu programa deve fazer o seguinte:
- Armazenar uma escritura, incluindo a referência (por exemplo, "João 3:16") e o texto da escritura.
- Adaptar-se a escrituras com vários versículos, como "Provérbios 3:5-6".
- Limpar a tela do console e exibir a escritura completa, incluindo a referência e o texto.
- Pedir ao usuário para pressionar a tecla Enter ou digitar sair.
- Se o usuário digitar sair, o programa deverá ser encerrado.
- Se o usuário pressionar a tecla Enter (sem digitar sair), o programa deverá esconder algumas palavras aleatórias na escritura, limpar a tela do console e exibir a escritura novamente.
- O programa deve continuar solicitando ao usuário e escondendo mais palavras até que todas as palavras na escritura estejam escondidas.
- Quando todas as palavras da escritura estiverem escondidas, o programa deverá ser encerrado.
- Ao selecionar as palavras aleatórias para esconder, para os requisitos básicos, você pode selecionar qualquer palavra aleatoriamente, mesmo que a palavra já esteja escondida. (Como desafio adicional, tente selecionar aleatoriamente apenas as palavras que ainda não estão escondidas.)
Requisitos de Design
Além disso, seu programa deve:
- Usar os princípios do encapsulamento, incluindo o uso adequado de classes, métodos, modificadores de acesso público/privado e seguir um bom estilo em todo o processo.
- Conter pelo menos 3 classes além da classe
Program: uma para a escritura em si, uma para a referência (por exemplo "João 3:16") e outra para representar uma palavra na escritura. - Fornecer vários construtores para a referência da escritura para lidar com o caso de um único versículo e um intervalo de versículos ("Provérbios 3:5" ou "Provérbios 3:5-6").
Demonstrando Criatividade e Indo Além dos Requisitos
Atender aos requisitos básicos torna seu programa elegível para receber 93%. Para receber 100% na tarefa, você precisa demonstrar criatividade e superar esses requisitos.
Aqui estão algumas ideias que você pode considerar:
- Pense em outros desafios que as pessoas encontram ao tentar memorizar uma escritura. Encontre uma maneira de fazer com que seu programa ajude com esses desafios.
- Faça com que seu programa trabalhe com uma biblioteca de escrituras em vez de apenas uma. Escolha escrituras aleatoriamente para apresentar ao usuário.
- Faça o programa carregar escrituras a partir de arquivos.
- Qualquer outra coisa que você imaginar!
Relate o que você fez para ir além dos requisitos adicionando uma descrição disso em um comentário no arquivo Program.cs.
Demonstração em Vídeo
O vídeo a seguir demonstra como esse programa deve funcionar:
Link direto: ▶️Demonstração do Programa de Memorização de Escrituras (2 minutos)
Ajuda com o Código
Você pode achar o código a seguir útil neste projeto:
Limpando o Console
No vídeo de demonstração, você pode ver que, quando o usuário pressionava a tecla Enter, as palavras na tela "desapareciam" ou eram substituídas por sublinhados. Na realidade, o que aconteceu foi que o console foi limpo e, então, a escritura foi exibida novamente, mas dessa vez com sublinhados no lugar de certas palavras.
Você pode limpar o console com o método Console.Clear().
// O código começa exibindo "AAA" e aguarda que o usuário pressione a tecla Enter
Console.WriteLine("AAA");
Console.ReadLine();
// Então limpa o console
Console.Clear();
// Agora mostra "BBB" no console onde costumava estar "AAA"
Console.WriteLine("BBB");
Design
Você trabalhará com seu grupo para criar um design para este programa. Então, cada um escreverá o código do programa individualmente.
Design Final (não abra até depois da reunião de design)
Para fins de referência, aqui está uma cópia do design que foi criado durante a atividade de design.
Para entender as decisões que levaram a esse design, certifique-se de percorrer a atividade de design passo a passo antes de usar esse design para iniciar seu código.
Desenvolver o Programa
No repositório do curso, encontre o projeto MemorizadorEscrituras na pasta semana03 e
escreva seu programa lá.
Envio
- Desenvolva o programa usando o princípio de encapsulamento conforme descrito acima.
- Não se esqueça de descrever tudo o que você fez para ir além dos requisitos nos comentários do arquivo Program.cs.
- Confirme (commit) e envie-o (push) para o GitHub.
- Verifique se você consegue ver seu código atualizado no GitHub.
- No Canvas, envie um link para seu repositório GitHub. No comentário de envio, descreva qualquer coisa que você tenha feito para mostrar criatividade e ir além dos requisitos básicos.