Beispiel #1
0
	void Point::setValue(unsigned int i, double v)
	{
		if (i >= __dim) {
			throw OutOfBoundsEx(__dim, i);
		}
		__values[i] = v;
	}
Beispiel #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);
    }
Beispiel #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);
    }
Beispiel #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);
    }
Beispiel #5
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);
    }
Beispiel #6
0
    const double & Point::operator[] (unsigned int index) const
    {
        if (index >= __dim)
            throw OutOfBoundsEx(__dim,index);

        return __values[index];
    }
Beispiel #7
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);
    }
Beispiel #8
0
	double Point::getValue(unsigned int i) const
	{
		if (i >= __dim) {
			throw OutOfBoundsEx(__dim, i);
		}
		return __values[i];
	}
Beispiel #9
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);
    }
Beispiel #10
0
    double Point::getValue(unsigned int index) const
    {
        if (index >= __dim)
            throw OutOfBoundsEx(__dim,index);

        return __values[index];

    }
 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);
 }
Beispiel #12
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);
 }
Beispiel #13
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);
 }
Beispiel #14
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);
 }
Beispiel #15
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);
 }
Beispiel #16
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);
 }
Beispiel #17
0
    void Point::setValue(unsigned int new_dim,double Value)
    {
        if (new_dim >= __dim)
            throw OutOfBoundsEx(__dim,new_dim);

        __values[new_dim] = Value;


    }
 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);
 }
 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);
 }
Beispiel #20
0
    const Piece* Game::getPiece(unsigned int x, unsigned int y) const
    {
         if(y >= __width ||  x >=__height)
             throw OutOfBoundsEx(__height, __width, x, y);


        if (__grid[y + (x * __width)] == nullptr) throw PositionEmptyEx(x, y);
        return __grid[y + (x * __width)];
    }
Beispiel #21
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);
 }
 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);
 }
    const Piece *Game::getPiece(unsigned int x, unsigned int y) const {
        //TODO would i return the piece that is at that location??
        int location = y +(x* __width);         //will look for this location on the grid
        if (x < 0 || x >= __height || y < 0 || y >= __width)
            throw OutOfBoundsEx(__width, __height, x, y);
        if (__grid[location] == nullptr)
            throw PositionEmptyEx(x, y);

        return __grid[location];                //returns the location on the grid
    }
    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);
    }
Beispiel #25
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);
    }
Beispiel #26
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);
    }
Beispiel #27
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;
    }
Beispiel #28
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;
    }
Beispiel #29
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;
    }
Beispiel #30
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);
    }