-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathoned.h
61 lines (47 loc) · 1.4 KB
/
oned.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef ONED_H
#define ONED_H
#include "autocell.h"
#include <QVector>
#include <QDebug>
#include<cmath>
/*!
* \brief Cette classe est un automate cellulaire (donc héritant de la classe AutoCell),
* se servant d'un numéro de règle allant de 0 à 255 pour calculer l'état de ses cellules
* lors de nouvelle générations
*/
class OneD : public AutoCell
{
public:
OneD(int width=100, int nbEtats=2,int r=126,int nb_neighborhood=3, QString name="");
/*!
* \brief Cette fonction permet de changer l'état d'une cellule
* \param point : QPoint récupéré lors du clic de l'utilisateur sur la render Area
*/
void changeCellState(const QPoint point);
/*!
* \brief Cette fonction permet à l'automate de passer à l'état suivant
*/
void nextState();
QVector<int> getRules() const;
void setRules(const QVector<int> &value);
/*!
* \brief remplit le tableau de règles
* \param n : numéro de règle
*/
void setRules(const int n);
/*!
* \brief remplit aléatoirement la matrice de l'automate
*/
void generateRandomly();
/*!
* \brief Permet de repasser à l'état précédent, virtuelle car la méthode varie en fonction de la dimension de l'automate
*/
void previous();
int getRule() const;
protected:
static QVector< QVector < QVector <int> > > rulesTab;
QVector<int>rule;
static QVector < QVector < QVector <int> > >makeRules();
signals:
};
#endif // ONED_H