CSE 210: Programação com Classes

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 ocultar 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 ocultada.

Especificação

Requisitos Funcionais

Seu programa deve fazer o seguinte:

  1. Armazenar uma escritura, incluindo a referência (por exemplo, "João 3:16") e o texto da escritura.
  2. Adaptar-se a escrituras com vários versículos, como "Provérbios 3:5-6".
  3. Limpar a tela do console e exibir a escritura completa, incluindo a referência e o texto.
  4. Pedir ao usuário para pressionar a tecla Enter ou digitar "sair".
  5. Se o usuário digitar "sair", o programa deverá ser encerrado.
  6. Se o usuário pressionar a tecla Enter (sem digitar "sair"), o programa deverá ocultar algumas palavras aleatórias na escritura, limpar a tela do console e exibir a escritura novamente.
  7. O programa deve continuar ocultando mais palavras até que todas as palavras na escritura estejam ocultadas.
  8. Quando todas as palavras da escritura estiverem ocultadas, o programa deverá ser encerrado.
  9. Ao selecionar as palavras aleatórias para ocultar, para atender aos requisitos básicos, você pode selecionar qualquer palavra aleatoriamente, mesmo que a palavra já esteja ocultada. Como desafio adicional, tente selecionar aleatoriamente apenas as palavras que ainda não foram ocultadas.

Requisitos de Design

Além disso, seu programa deve:

  1. 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.
  2. 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.
  3. 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:

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

Ajuda com o Código

Você pode achar o código a seguir útil para esse 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 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: Use esse design para o seu programa (não abra até depois da reunião em grupo)

Independente do design criado durante a atividade de design, você deve seguir este design final ao desenvolver seu código.

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.

Diagrama de classe do programa Escritura

Desenvolver o Programa

No repositório do curso, encontre o projeto MemorizadorEscrituras na pasta semana03 e escreva seu programa lá.

Envio

  1. Desenvolva o programa usando o princípio de encapsulamento conforme descrito acima.
  2. 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.
  3. Confirme (commit) e envie-o (push) para o GitHub.
  4. Verifique se você consegue ver seu código atualizado no GitHub.
  5. 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.