Init version

This commit is contained in:
2024-10-03 18:43:04 +07:00
commit f80052961f
186 changed files with 71676 additions and 0 deletions

49
DEC_GUI/Agressor/model.h Normal file
View File

@@ -0,0 +1,49 @@
#ifndef MODEL_H
#define MODEL_H
#include <QObject>
#include "agent.h"
class Model : public QObject
{
Q_OBJECT
public:
explicit Model(uint modelId, uint CM, uint CN, uint PM, uint PN, int radius, uint speed, bool period, uint distr,
uint enmity, uint newEnmity, QObject *parent = 0);
qreal mod(qreal a); // модуль числа
QList <Agent *> DangerGamer(uint index, qreal x, qreal y, uint dist); // список игроков, с которыми возможно столкновение
QList<QList<Agent *> > DangerGamer(QList<QList<Agent *> > danger, int index, qreal x, qreal y, uint dist);
bool leaveWindowX(uint agentId, QLineF checked); // проверка на покидание окна по координате X
bool leaveWindowY(uint agentId, QLineF checked); // проверка на покидание окна по координате Y
QLineF periodicTransf(uint index, QLineF tend); // преобразование координат из-за перидочности сцены
QLineF requiredVector(uint gamerId); // вычисление новых координат для игрока с номером gamerId
void modelIteration();
uint getId() {return id;}
QList <Agent *> getAgentList() {return this->agentList;}
void setEnmity(int enm) {this->enmity = enm;}
void setAvContentment(qreal cont){this->avContentment = cont;}
qreal getAvContentment(){return this->avContentment;}
void clear();
private:
uint id;
QList <Agent *> agentList; // список указателей на игроков
uint cowardMedian; // число игроков в режиме труса, движущихся по медиане
uint cowardNormal; // число игроков в режиме труса, движущихся по нормали
uint protectorMedian; // число игроков в режиме защитника, движущихся по медиане
uint protectorNormal; // число игроков в режиме защитника, движущихся по нормали
int agentRadius; // радиус шарика-агента (для передачи в конструктор)
uint newEnmity; // параметр enmity, полученный из диалогового окна
uint gamerSpeed; // скорость агентов
bool period; // метка периодичности краёв сцены (true - сцена периодична)
uint initDistr; // метка начального распределения игроков сцены (0 - случайное, 1 - на круге)
uint enmity; // минимальное расстояние, на которое игроки могут приближаются друг к другу, enmity = 0 - возможно покоординатное совпадение игроков
qreal avContentment;
signals:
public slots:
};
#endif // MODEL_H