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 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:

  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á esconder algumas palavras aleatórias na escritura, limpar a tela do console e exibir a escritura novamente.
  7. O programa deve continuar solicitando ao usuário e escondendo mais palavras até que todas as palavras na escritura estejam escondidas.
  8. Quando todas as palavras da escritura estiverem escondidas, o programa deverá ser encerrado.
  9. 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:

  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 (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.

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.