quarta-feira, 27 de outubro de 2010

Decisões de design do projeto

Hoje decidimos algumas coisas referentes à estrutura do código do projeto para o que teremos que implementar a seguir.

Decidimos criar uma classe GerenciadorAR, responsável pelas tarefas relacionadas à realidade aumentada: inicialização, controle das tags, atualização por frame (talvez temporariamente), etc.

Criaremos também a classe MapaOpções, que lida com as regiões da tela durante a interação com o usuário.


Também discutimos a implementação da feature do programa de que certas decisões têm consequências a longo prazo, isto é, a "memória" do livro.

Nossa primeira idéia foi de que o programa guarde certas informações-chave para que, em certo momento da história, possa decidir se uma decisão desencadeia essa ou aquela reação.
(Exemplo: o que acontece se a Bela Adormecida vai para o castelo? Depende se ela casou com o príncipe, brigou com ele ou eles nem se conhecem)

Assim, poderíamos term uma tabela de hashing (vetor associativo?) em que as chaves são "perguntas" sobre a situação atual e os valores são as respostas.
Exemplo:
...
situacao["marido chapeuzinho"] = "Joao"
...

Com essa solução, precisamos que alguém decida, a cada decisão do usuário, qual das possíveis consequências será desencadeada, isto é, qual página será carregada.
Sugerimos, então, a criação da classe GerenciadorDeRumo.

A solução é um pouco mais difícil do que parece porque precisamos indicar essas informações de algum modo nos arquivos XML que descrevem as páginas e opções (que ainda não criamos).
O XML de cada opção deve indicar as páginas "candidatas" a serem a próxima e seus requisitos.
(Se a Branca de Neve fez amizade com a avó da Chapeuzinho em algum momento, esta opção nos leva à página 120).

Nenhum comentário:

Postar um comentário