00001 00002 class AI { 00003 public: 00005 virtual AI * clone()const; 00007 virtual void execute(class Spectre *parent); 00008 virtual ~AI(){} 00009 }; 00010 00011 00012 class VirtualSocket { 00013 class Packet { 00014 char data [2048]; 00015 }; 00016 std::vector<Packet> inputQueue; 00017 public: 00018 void write (const Packet &p); 00019 Packet *read ();//something like this 00020 ~VirtualSocket(){} 00021 }; 00023 class NetworkAI:public AI { 00024 protected: 00025 VirtualSocket sockt; 00026 public: 00027 NetworkAI (VirtualSocket vs); 00028 virtual AI * clone ()const {return new NetworkAI(sockt);} 00029 virtual void execute (class Spectre * parent); 00030 virtual ~NetworkAI(){} 00031 }; 00033 class ComputerAI: public AI { 00034 int mode; 00035 public: 00036 virtual AI * clone ()const {return new ComputerAI;} 00037 virtual void execute (class Spectre * parent); 00038 virtual ~ComputerAI(){} 00039 }; 00041 class HumanAI: public AI { 00042 public: 00043 virtual AI * clone ()const {return new HumanAI;} 00044 virtual void execute (class Spectre * parent); 00045 virtual ~HumanAI(){} 00046 };