52 lines
1.8 KiB
C++
52 lines
1.8 KiB
C++
#ifndef AGENT_H
|
||
#define AGENT_H
|
||
|
||
#include <QObject>
|
||
|
||
class Agent : public QObject
|
||
{
|
||
Q_OBJECT
|
||
public:
|
||
explicit Agent(uint agentId, uint agr, uint prot, uint mod, uint str, uint rad, uint sp, QObject *parent = 0);
|
||
// setters, getters
|
||
uint getID();
|
||
void setID(uint);
|
||
uint getAgressor();
|
||
void setAgressor(uint agr);
|
||
uint getProtector();
|
||
void setProtector(uint prot);
|
||
qreal getCoordX();
|
||
void setCoordX(qreal x);
|
||
qreal getCoordY();
|
||
void setCoordY(qreal y);
|
||
uint getMode();
|
||
void setMode(uint mod);
|
||
uint getStrategy();
|
||
void setStratedy(uint str);
|
||
int getRadius();
|
||
void setRadius(uint rad);
|
||
uint getSpeed();
|
||
void setSpeed(uint sp);
|
||
qreal getDistTarget();
|
||
void setDistTarget(qreal dist);
|
||
qreal getContentmemt();
|
||
void setContentment(qreal cont);
|
||
|
||
void gameEvent(QLineF shift); // смена положения
|
||
|
||
private:
|
||
uint id; // порядковый номер
|
||
uint agressor; // номер игрока А (условно - агрессора)
|
||
uint protector; // номер игрока В (условно - защитника)
|
||
qreal coordX; // координата x
|
||
qreal coordY; // координата y
|
||
uint mode; // режим: 0 - режим труса, 1 - режим защитника
|
||
uint strategy; // стратегия: 0 - движение по медиане/антимедиане, 1 - движение по нормали
|
||
uint radius; // радиус (для расчёта столкновений)
|
||
uint speed; // скорость
|
||
qreal distTarget; // расстояние до желаемых координат
|
||
qreal contentment; // неудовлетворённость агента
|
||
};
|
||
|
||
#endif // AGENT_H
|