Esempio n. 1
0
    void Game::addStrategic(const Position &position, Strategy *s) {
        int index = position.y + (position.x * __width);
        if (position.y >= __width || position.x >= __height) throw OutOfBoundsEx(__width, __height, position.x, position.y);
        if (__grid[index]) throw PositionNonemptyEx(position.x, position.y);

        __grid[index] = new Strategic(*this, position, STARTING_AGENT_ENERGY, s);
    }
Esempio n. 2
0
    void Game::addStrategic(unsigned x, unsigned y, Strategy *s) {
        int index = y + (x * __width);
        if (y >= __width || x >= __height) throw OutOfBoundsEx(__width, __height, x, y);
        if (__grid[index]) throw PositionNonemptyEx(x, y);

        __grid[index] = new Strategic(*this, Position(x, y), STARTING_AGENT_ENERGY, s);
    }
Esempio n. 3
0
    void Game::addSimple(const Position &position, double energy) { // used for testing only
        int index = position.y + (position.x * __width);
        if (position.y >= __width || position.x >= __height) throw OutOfBoundsEx(__width, __height, position.x, position.y);
        if (__grid[index]) throw PositionNonemptyEx(position.x, position.y);

        __grid[index] = new Simple(*this, position, energy);
    }
Esempio n. 4
0
    void Game::addSimple(unsigned y, unsigned x, double energy) {
        int index = y + (x * __width);
        if (y >= __width || x >= __height) throw OutOfBoundsEx(__width, __height, x, y);
        if (__grid[index]) throw PositionNonemptyEx(x, y);

        __grid[index] = new Simple(*this, Position(x, y), energy);
    }
Esempio n. 5
0
    void Game::addAdvantage(unsigned x, unsigned y) {
        int index = y + (x * __width);
        if (y >= __width || x >= __height) throw OutOfBoundsEx(__width, __height, x, y);
        if (__grid[index]) throw PositionNonemptyEx(x, y);

        __grid[index] = new Advantage(*this, Position(x, y), STARTING_RESOURCE_CAPACITY);
    }
Esempio n. 6
0
    void Game::addAdvantage(const Position &position) {
        int index = position.y + (position.x * __width);
        if (position.y >= __width || position.x >= __height) throw OutOfBoundsEx(__width, __height, position.x, position.y);
        if (__grid[index]) throw PositionNonemptyEx(position.x, position.y);

        __grid[index] = new Advantage(*this, position, STARTING_RESOURCE_CAPACITY);
    }
Esempio n. 7
0
 void Game::addFood(const Position &position) {
     int location = position.y + (position.x * __width);
     if (position.x < 0 || position.x >= __height || position.y < 0 || position.y >= __width)
         throw OutOfBoundsEx(__width, __height, position.x, position.y);
     if (__grid[location])
         throw PositionNonemptyEx(position.x, position.y);
     __grid[location] = new Food(*this, position,STARTING_RESOURCE_CAPACITY);
 }
Esempio n. 8
0
 void Game::addAdvantage(unsigned x, unsigned y) {
     if (y >= __width || x >= __height) {
         throw OutOfBoundsEx(__width, __height, x, y);
     }
     if (__grid[(x *__width)+y]) {
         throw PositionNonemptyEx(x, y);
     }
     __grid[(x *__width)+y] = new Advantage(*this, Position(x, y), STARTING_RESOURCE_CAPACITY);
 }
Esempio n. 9
0
 void Game::addAdvantage(const Position &position) {
     if (position.y >= __width || position.x >= __height) {
         throw OutOfBoundsEx(__width, __height, position.x, position.y);
     }
     if (__grid[(position.x *__width)+position.y]) {
         throw PositionNonemptyEx(position.x, position.y);
     }
     __grid[(position.x *__width)+position.y] = new Advantage(*this, position, STARTING_RESOURCE_CAPACITY);
 }
Esempio n. 10
0
 void Game::addStrategic(const Position &position, Strategy *s) {
     if (position.y >= __width || position.x >= __height) {
         throw OutOfBoundsEx(__width, __height, position.x, position.y);
     }
     if (__grid[(position.x * __width)+position.y]) {
         throw PositionNonemptyEx(position.x, position.y);
     }
     __grid[(position.x * __width)+position.y] = new Strategic(*this, position, STARTING_AGENT_ENERGY, s);
 }
Esempio n. 11
0
 void Game::addSimple(unsigned y, unsigned x, double energy) {
     if (y >= __width || x >= __height) {
         throw OutOfBoundsEx(__width, __height, x, y);
     }
     if (__grid[(x*__width)+y]) {
         throw PositionNonemptyEx(x, y);
     }
     __grid[(x*__width)+y] = new Simple(*this, Position(x, y), energy);
 }
Esempio n. 12
0
 void Game::addSimple(unsigned x, unsigned y) {
     if (y >= __width || x >= __height) {
         throw OutOfBoundsEx(__width, __height, x, y);
     }
     if (__grid[(x*__width)+y]) {
         throw PositionNonemptyEx(x, y);
     }
     __grid[(x*__width)+y] = new Simple(*this, Position(x, y), STARTING_AGENT_ENERGY);
 }
Esempio n. 13
0
 void Game::addSimple(const Position &position, double energy) {
     if (position.y >= __width || position.x >= __height) {
         throw OutOfBoundsEx(__width, __height, position.x, position.y);
     }
     if (__grid[(position.x * __width)+position.y]) {
         throw PositionNonemptyEx(position.x, position.y);
     }
     __grid[(position.x * __width)+position.y] = new Simple(*this, position, energy);
 }
Esempio n. 14
0
 void Game::addAdvantage(unsigned x, unsigned y) {
     Position pos(x,y);
     int location = y +(x *__width);
     if (x < 0 || x >= __height || y < 0 || y >= __width)
         throw OutOfBoundsEx(__width, __height, x, y);
     if (__grid[location])
         throw PositionNonemptyEx(x, y);
     __grid[location] = new Advantage(*this, pos, STARTING_RESOURCE_CAPACITY);
 }
Esempio n. 15
0
 void Game::addStrategic(unsigned x, unsigned y, Strategy *s) {
     Position pos(x,y);
     int location = y + (x * __width);
     if (x < 0 || x >= __height || y < 0 || y >= __width)
         throw OutOfBoundsEx(__width, __height, x, y);
     if (__grid[location])
         throw PositionNonemptyEx(x, y);
     __grid[location] = new Strategic(*this, pos, STARTING_AGENT_ENERGY,s);
 }
Esempio n. 16
0
 void Game::addSimple(const Position &position, double energy) {
     //exception for out of bounds
     int location = position.y + (position.x * __width);
     if(position.x < 0 || position.x >= __height || position.y < 0 || position.y >= __width){
         throw OutOfBoundsEx(__width,__height,position.x,position.y);
     }
     if(__grid[location])
         throw PositionNonemptyEx(position.x,position.y);
     __grid[location] = new Simple(*this, position,energy);
 }
Esempio n. 17
0
void Game::addSimple(unsigned x, unsigned y)
    {
        int place = y + x * __width;
        if (y >= __width || x >= __height)
            throw OutOfBoundsEx(__width, __height, x, y);
        
        if (__grid[place])
            throw PositionNonemptyEx(x, y);
        
        __grid[place] = new Simple(*this, Position(x, y), STARTING_AGENT_ENERGY);
    }
Esempio n. 18
0
    void Game::addStrategic(const Position &position, Strategy *s/* = new DefaultAgentStrategy()*/){
        Strategic *newStrat = new Strategic(*this, position, STARTING_AGENT_ENERGY,s);
        
        if((position.y*__width + position.x)>__grid.size() || position.x > __width)
            throw OutOfBoundsEx(__width,__height,position.x,position.y);

        if((__grid[position.y*__width + position.x])!=nullptr)
            throw PositionNonemptyEx(position.x,position.y);
        
        __grid[position.y*__width + position.x] = newStrat;
    }
Esempio n. 19
0
    void Game::addAdvantage(const Position &position){
        Advantage *newAdvantage = new Advantage(*this, position, STARTING_RESOURCE_CAPACITY);
        
        if((position.y*__width + position.x)>__grid.size() || position.x > __width)
            throw OutOfBoundsEx(__width,__height,position.x,position.y);

        if((__grid[position.y*__width + position.x])!=nullptr)
            throw PositionNonemptyEx(position.x,position.y);
        
        __grid[position.y*__width + position.x] = newAdvantage;
    }
Esempio n. 20
0
    void Game::addAdvantage(unsigned int x, unsigned int y)
    {
        int i = x * __width + y;
        if(y >= __width || x>=__height)
             throw OutOfBoundsEx(__height, __width, x, y);

         if(__grid[i])
             throw PositionNonemptyEx(x, y);

         __grid[i] = new Advantage(*this, Position(x,y), Game::STARTING_RESOURCE_CAPACITY);
    }
Esempio n. 21
0
    void Game::addSimple(const Position &position, double energy){
        Simple *newSimple = new Simple(*this, position, STARTING_AGENT_ENERGY);
        
        if((position.y*__width + position.x)>__grid.size() || position.x > __width)
            throw OutOfBoundsEx(__width,__height,position.x,position.y);

        if((__grid[position.y*__width + position.x])!=nullptr)
            throw PositionNonemptyEx(position.x,position.y);
        
        __grid[position.y*__width + position.x] = newSimple;
    }
Esempio n. 22
0
    void Game::addSimple(unsigned int x, unsigned int y)
    {    int i = x * __width + y;

         if( y >= __width ||  x >= __height)
             throw OutOfBoundsEx(__height, __width, x, y);

         if(__grid[i])
             throw PositionNonemptyEx(x, y);

         __grid[i] = new Simple(*this, Position(x,y), Game::STARTING_AGENT_ENERGY);
    }
Esempio n. 23
0
    void Game::addSimple(unsigned x, unsigned y, double energy) {
        //exception for out of bounds

        Position pos(x,y);
        int location = y + (x * __width);
        if (x < 0 || x >= __height || y < 0 || y >= __width)
            throw OutOfBoundsEx(__width, __height, x, y);
        if (__grid[location])
            throw PositionNonemptyEx(x, y);
        __grid[location] = new Simple(*this, pos,energy);
    }
Esempio n. 24
0
void Game::addFood(unsigned x, unsigned y)
    {
        int place = y + x * __width;
        
        if (y >= __width || x >= __height)
            throw OutOfBoundsEx(__width, __height, x, y);
        
        if (__grid[place])
            throw PositionNonemptyEx(x, y);
        
        __grid[place] = new Food(*this, Position(x, y), STARTING_RESOURCE_CAPACITY);
    }
Esempio n. 25
0
void Game::addFood(const Position &position)
    {
        int place = position.y + position.x * __width;
        
        if (position.y >= __width || position.x >= __height)
            throw OutOfBoundsEx(__width, __height, position.x, position.y);
        
        if (__grid[place])
            throw PositionNonemptyEx(position.x, position.y);
        
        __grid[place] = new Food(*this, position, STARTING_RESOURCE_CAPACITY);
    }
Esempio n. 26
0
//grid population methods
void Game::addSimple(const Position &position)
    {
        int place = position.y + position.x * __width;
        
        if (position.y >= __width || position.x >= __height)
            throw OutOfBoundsEx(__width, __height, position.x, position.y);
        
        if (__grid[place])
            throw PositionNonemptyEx(position.x, position.y);
        
        __grid[place] = new Simple(*this, position, STARTING_AGENT_ENERGY);
    }
Esempio n. 27
0
    void Game::addAdvantage(const Position &p)
    {
        int i = p.x * __width + p.y;

        if(p.y >__width || p.x >= __height)
             throw OutOfBoundsEx(__height, __width, p.x, p.y);

         if(__grid[i])
             throw PositionNonemptyEx(p.x, p.y);

         __grid[i] = new Advantage(*this, p, Game::STARTING_RESOURCE_CAPACITY);
    }
Esempio n. 28
0
    void Game::addStrategic(const Position &p, Strategy *s)
    {
         int i = p.x * __width + p.y;

         if(p.y >__width || p.x >= __height)
             throw OutOfBoundsEx(__height, __width, p.x, p.y);

         if(__grid[i])
             throw PositionNonemptyEx(p.x, p.y);

         __grid[i] = new Strategic(*this, p, Game::STARTING_AGENT_ENERGY, s);
    }
Esempio n. 29
0
    // grid population methods
    void Game::addSimple(const Position &position) {

        if ((position.x*__width + position.y) > __grid.size()) {
            throw OutOfBoundsEx(__width, __height, position.x, position.y);
        }
        if (__grid[position.x * __width + position.y] != nullptr) {
            throw PositionNonemptyEx(position.x, position.y);
        }

        __grid[position.x * __width + position.y] = new Simple(*this, position,STARTING_AGENT_ENERGY);

    }
Esempio n. 30
0
void Game::addSimple(const Position &position, double energy)
    {
        
        int place = position.y + position.x * __width;
        
        if (position.y >= __width || position.x >= __height)
            throw OutOfBoundsEx(__width, __height, position.x, position.y);
        
        if (__grid[place])
            throw PositionNonemptyEx(position.x, position.y);
        
        __grid[place] = new Simple(*this, position, energy);
    }