next up previous contents
Next: Possibilidades Up: Desenvolvimento Previous: Arquivo de configuração   Sumário

Inteligência Artificial

A idéia inicial para a inteligência artificial era fazer com que cada nave decidisse sua ação baseada em uma série de fatores e manipulasse as devidas variáveis. No entanto, seguindo nossa filosofia de modularizar o código, optamos por isolar a inteligência artificial na classe AI.

Assim, a classe seria uma espécie de ``manager'', mantendo as informações necessárias sobre cada inimigo para a tomada de decisões. Entretanto, esbarramos em dois fatores que sugeriam que seria necessária outra alternativa -- em primeiro lugar, a maioria das informações necessárias (posição, direção, velocidade, etc.) estava duplicada na estrutura ENEMY contida dentro da classe Enemy; em segundo lugar, havia o problema de gerenciar a qual inimigo cada estrutura de informações se referia, já que os inimigos podiam ser criados ou destruídos a qualquer momento e poderia acontecer de um inimigo referenciar o conjunto errado de dados na classe AI.

A solução encontrada foi centralizar os dados na classe Enemy, e a classe AI ficou como um repositório de funções que poderiam consultar qualquer dado dos ``managers'' e que retornariam uma estrutura contendo a nova direção e velocidade da nave, bem como um flag que indicava se a mesma iria atirar naquele frame.



Subsections
next up previous contents
Next: Possibilidades Up: Desenvolvimento Previous: Arquivo de configuração   Sumário
Alessandro Wilner 2002-12-04