LP – Laboratório de Programação – PUC-SP -2º sem/2022 - Prof. Julio Araraki
- Cinthia Alves Barreto;
- Igor Matos Gaeta;
- Guilherme Diniz Leocadio;
- Lucas Cassolino D' Azevedo.
1 - Menu principal, primeira tela mostrada ao jogador as opções de criar um novo jogo, recuperar um jogo salvo, ou sair.
2 - Ao selecionar a opção de Novo Jogo, o jogador terá que escolher o tamanho do mundo, após isso, outro menu aparecerá com as seguintes opções: Iniciar jogo, Apresentar Mundo, Limpar o Mundo, Escolher uma célula, Remover uma célula, Salvar Jogo, Voltar para o Menu Inicial.
3 – A opção recomendada a se escolher nesse caso é Escolher uma célula, tendo em vista que o mundo ainda está vazio. Após esta escolha será necessário que o jogador selecione a posição que ele deseja acrescentar uma nova célula.
3.1 – Após inserir a primeira célula o “mundo” será exibido na tela e a opção de continuar inserindo células ou não.
4 – Ao terminar de inserir as células o usuário retorna ao Menu, sendo recomendado a opção de Iniciar jogo. Quando selecionada, esta opção apresenta o menu de simulação, possibilitando a escolha de Gerar a próxima geração (realiza manualmente), Gerar automaticamente (realiza até 10 simulações) e interromper a geração.
5 – Depois de escolher a opção Próxima geração, será exibido apenas uma geração seguinte, e retornando ao menu de simulação.
6 – Selecionando Gerar automático (10x), será possível escolher quantas gerações seguintes são desejadas e também o intervalo de tempo em que essas simulações são exibidas na tela.
7 – Ao escolher a opção Interromper Simulação, voltaremos ao Sub Menu Principal com as escolhas possíveis citadas no item 2.
8 – Selecionando Apresentar Mundo, será exibido o mundo caso tenha sido realizada uma simulação anteriormente.
9 - Ao selecionar Remover uma Célula, poderemos escolher uma célula específica para ser removida do mundo.
10 – A opção Limpar Mundo remove todas as células e o deixa vazio.
1 - Menu inicial
2 – Sub Menu Principal
3- Inserindo uma célula
4 – Iniciando o jogo
5 – Simulação manual
6 – Simulação automática
7 – Retornando ao menu de ações do jogo após a simulação
8 – Apresentar mundo anterior
9 – Remover uma Célula
10 – Limpar o Mundo
11 – Salvar jogo
12 – Recuperar Jogo (após fechar o arquivo executável e abrir de novo)
13 – Padrões de jogo
14 – Geração automática do padrão 2
Assinaturas do view
- void imprimeMatriz() = função que imprime a matriz principal;
- void mensagens(int) = função que armazena todas as mensagens;
- void menuInicialJogo() = função que imprime o menu inicial para o usuário;
- void subMenuPrincipal() = função que contém as opções visuais do menu principal;
- void flush_in() = função que limpa o console;
- void geracaoView() = função que contém as opções visuais do menu da simulação;
- void viewPadrao1() = função que exibe ao usuário o padrão 1 de mundo;
- void viewPadrao2() = função que exibe ao usuário o padrão 2 de mundo;
- void viewPadrao3() = função que exibe ao usuário o padrão 3 de mundo;
Assinaturas Model
- void geraMatriz() = função que gera a matriz;
- void matrizCopiada() = função que gera matriz auxiliar;
- void matrizPadroes() = função que gera os padrões de mundo ao usuário;
Assinaturas Controller
- void menuInicialJogo() = função com o menu principal do jogo;
- void escolheCelula() = função que permite o usuário escolher quais células ele quer criar;
- void limpaMatriz() = função que limpa a matriz;
- void removeCelula() = função que remove individualmente as células da matriz;
- void iniciarJogo() = função que verifica quais células vão morrer, viver ou nascer;
- int checaLados() = função que checa os lados de cada célula para ver quantas células vivas tem em volta;
- void menuGeracao() = função que armazena o menu para a simulação;
- void menuPadrao() = função que permite criar, selecionar e exibir os padrões de mundo 1,2 e 3;
- void aplicaPadrao1() = função que cria a matriz do mundo de padrão 1;
- void aplicaPadrao2() = função que cria a matriz do mundo de padrão 2;
- void aplicaPadrao3() = função que cria a matriz do mundo de padrão 3;
Assinaturas Model - Manipulação de arquivos
- void salvarJogo() = salva todas as variáveis da struct jogo;
- void recuperarJogo() = recupera todas as variáveis da struct jogo.