28#ifndef OBJECTSBRAINSPME_H 
   29#define OBJECTSBRAINSPME_H 
   32#include "MemoryManager.h" 
   35class ArtificialNeuralNet;
 
   38class Brain : 
public CMemPME
 
   43    virtual Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
   44    void getName(
string &);
 
   45    Sint32 getTargetType();
 
   53class BrainEvolved : 
public Brain
 
   56    explicit BrainEvolved();
 
   58    virtual Sint32 think(Actor*, Sint32&, Sint32&, GameField*) = 0;
 
   59    Sint32 load(
string sCDCFile = 
"", 
string sXMLName = 
"");
 
   60    Sint32 setFitness(
double);
 
   62    ArtificialNeuralNet* getNeuralNet();
 
   64    ArtificialNeuralNet* pNeuralNet;
 
   65    Sint32 iNNInput, iNNOutput;
 
   70class BrainPacManHuman : 
public Brain
 
   73    explicit BrainPacManHuman();
 
   74    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
   76class BrainPacMan : 
public Brain
 
   79    explicit BrainPacMan();
 
   80    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
   84class BrainRedGhost : 
public Brain
 
   87    explicit BrainRedGhost();
 
   88    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
   90class BrainEvolvedRedGhost : 
public BrainEvolved
 
   93    explicit BrainEvolvedRedGhost(Sint32);
 
   94    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
   98class BrainPinkGhost : 
public Brain
 
  101    explicit BrainPinkGhost();
 
  102    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
  104class BrainEvolvedPinkGhost : 
public BrainEvolved
 
  107    explicit BrainEvolvedPinkGhost(Sint32);
 
  108    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
  112class BrainBlueGhost : 
public Brain
 
  115    explicit BrainBlueGhost();
 
  116    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
  118class BrainEvolvedBlueGhost : 
public BrainEvolved
 
  121    explicit BrainEvolvedBlueGhost(Sint32);
 
  122    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
  126class BrainOrangeGhost : 
public Brain
 
  129    explicit BrainOrangeGhost();
 
  130    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);
 
  132class BrainEvolvedOrangeGhost : 
public BrainEvolved
 
  135    explicit BrainEvolvedOrangeGhost(Sint32);
 
  136    Sint32 think(Actor*, Sint32&, Sint32&, GameField*);