animal.hpp

Idź do dokumentacji tego pliku.
00001 #ifndef __ANIMAL_HPP__
00002 #define __ANIMAL_HPP__
00003 
00004 #include <list>
00005 #include "animal_.hpp"
00006 #include "behavior.hpp"
00007 #include "obstacles.hpp"
00008 #include "vector2D.hpp"
00009 
00010 
00019 #define ORDER_NOTHING 0 //< brak rozkazow */
00020 #define ORDER_RUN 1 //< ucieczka / atak */
00021 #define ORDER_FORMGROUP 2  //< grupowanie */
00022 #define ORDER_DISP 3 //< rozproszenie */
00023 
00024 
00025 class Animal : public Animal_ {
00026 protected:
00027         unsigned int _ID; //< przyznany identyfikator */
00028         unsigned int _LiderID; //< identyfikator 'przelozonego', jesli
00029                                //  ma te sama wartosc co _ID, to zwierzak
00030                                //  jest liderem */
00031         int _Order;     //< przechowuje 'rozkaz' */
00032         unsigned int _OrderParam; //< przechowuje parametr rozkazu, 
00033                                   // np. ID zwierzaka*/
00034         unsigned int _Target; //< ID 'najlepszej' ofiary */
00035 
00036         Behavior *_behavior; //< zachowanie */  
00037 
00038 public:
00039         friend ostream & operator<< (ostream &Strm,  const Animal &anim);
00040         friend istream & operator>> (istream &Strm, Animal &anim);
00041 
00049         Animal(unsigned int ID);
00050 
00054         void setID(unsigned int ID);
00055 
00060         unsigned int getID() const;
00061 
00066          void setLiderID(unsigned int ID);
00067          
00072           unsigned int getLiderID() const;
00073 
00078         void setBehavior(Behavior *beh);
00079 
00093         Vector2D go(int t);
00094 
00103         void reaction(list<Animal_> &family, list<Animal_> &opponent,
00104                 Obstacles &obs);        
00105         
00106 };
00107 
00108         ostream & operator<< (ostream &Strm, const Animal &anim);
00109         istream & operator>> (istream &Strm, Animal &anim);
00110 
00111 #endif
00112 

Wygenerowano Tue Jan 22 12:58:54 2008 dla Zwierzaki programem  doxygen 1.5.2