segunda-feira, 19 de novembro de 2007

Abordagem Inicial

Arte, definitivamente, não é o meu forte.

O layout é a típica grelha sem as bordas exteriores, com bolas e cruzes para representar os símbolos típicos do jogo (bolas e cruzes), o background é branco!
Tenho uma versão funcional, para dois utilizadores a jogar no mesmo applet (Flash). é relativamente simples e implica que o jogador tenha um amigo ao lado, para que a experiência tenha interactividade.
Dado que nem toda gente tem amigos ( dispostos a jogar galo no mesmo momento que nós), decidi incluir no jogo a opção "Jogador VS CPU".
A complexidade de desenvolvimento do jogo aumentou exponencialmente com a decisão do parágrafo anterior.

Estive a pesquisar alguns conceitos, e optei pela a técnica Árvores MiniMax. Sumariamente esta técnica é aparentemente a estratégia Brute-Force dos algoritmos I.A
Na implementação do algoritmo em actionscript optei pela abordagem recursiva! Optei muito mal, pq após n tentativas verifiquei que o flash parava na instância ~14000 recursiva da função que gerava a arvore.
O que inicialmente parecia um erro semântico nas condições de paragem, viria a ser solucionado com uma perspectiva matemática à questão. Após 2 horas de cálculos verifiquei a possibilidade de 1077120 estágios de preenchimento da grelha. Desconfio que o flash consiga lidar com essa carga de operações.
Estratégia para solucionar a carga computacional:
Adaptar o código para c++, obter a arvore com todos os estágios, e proceder à eliminação dos estágios pós-victoria ou empate. Carregar a arvore no applet flash como objecto estático

1 comentário:

fabio disse...

Cara da uma olhada no meu blog
http://fabone.04live.com/Primeiro-blog-b1/Hanoi-iterativo-b1-p2.htm
com 40 linhas tu resolve o problema!