Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Romain De Laage De Bellefaye
LO21-projet
Commits
2211d3f6
Verified
Commit
2211d3f6
authored
May 14, 2021
by
Romain De Laage De Bellefaye
🌳
Browse files
Finish Functions and Rules
parent
9aff537e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Fonction_Regle/Fonction.cpp
View file @
2211d3f6
...
...
@@ -54,3 +54,54 @@ const Etat& FonctionAvecEtatCourant::getEtatSuivant(const Voisinage& voisins, co
return
etatDefaut
;
}
void
Fonction
::
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsMax
[
8
],
const
int
seuilsMax
[
8
])
{
Regle
**
nouveau
=
new
*
Regles
[
nbRegles
+
1
];
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
nouveau
[
i
]
=
regles
[
i
];
nouveau
[
nbRegles
]
=
new
Regle
(
destination
,
seuilsMax
,
seuilsMax
);
++
nbRegles
;
delete
[]
regles
;
regles
=
nouveau
;
}
void
FonctionAvecEtatCourant
::
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsMax
[
8
],
const
int
seuilsMax
[
8
],
const
Cellule
&
cellule
)
{
RegleAvecEtatCourant
**
nouveau
=
new
*
ReglesAvecEtatCourant
[
nbRegles
+
1
];
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
nouveau
[
i
]
=
regles
[
i
];
nouveau
[
nbRegles
]
=
new
RegleAvecEtatCourant
(
destination
,
seuilsMax
,
seuilsMax
,
cellule
);
++
nbRegles
;
delete
[]
regles
;
regles
=
nouveau
;
}
Fonction
::~
Fonction
()
{
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
delete
regles
[
i
];
delete
[]
regles
;
}
FonctionAvecEtatCourant
::~
FonctionAvecEtatCourant
()
{
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
delete
regles
[
i
];
delete
[]
regles
;
}
Regle
::
Regle
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsMax
[
8
])
:
destination
(
dest
)
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
seuilsMin
[
i
]
=
nSeuilsMin
[
i
];
for
(
int
i
=
0
;
i
<
8
;
++
i
)
seuilsMax
[
i
]
=
nSeuilsMax
[
i
];
}
RegleAvecEtatCourant
::
RegleAvecEtatCourant
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsMax
[
8
],
const
Cellule
&
cellule
)
{
Regle
(
nDestination
,
nSeuilsMin
,
nSeuilsMax
);
etatCourant
=
cellule
.
getEtat
;
}
Fonction_Regle/Fonction.h
View file @
2211d3f6
...
...
@@ -8,6 +8,7 @@ class Regle {
Etat
destination
;
public:
Regle
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsMax
[
8
]);
const
Etat
&
getDestination
()
const
{
return
destination
;
}
bool
verify
(
const
Voisinage
&
voisins
)
const
;
};
...
...
@@ -17,6 +18,7 @@ class RegleAvecEtatCourant: public Regle {
Etat
etatCourant
;
public:
RegleAvecEtatCourant
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsMax
[
8
],
const
Cellule
&
cellule
);
bool
verify
(
const
Voisinage
&
voisins
,
const
Cellule
&
cellule
)
const
;
};
...
...
@@ -24,13 +26,14 @@ class Fonction {
private:
Etat
etatDefaut
;
Regle
**
regles
;
int
nbRegles
;
public:
Fonction
(
);
Fonction
(
const
Etat
&
etat
)
:
regles
(
nullptr
),
nbRegles
(
0
),
etatDefaut
(
etat
){}
~
Fonction
();
const
Etat
&
getEtatDefaut
()
const
{
return
etatDefaut
;
}
void
setEtatDefaut
(
const
Etat
&
nouveau
)
{
etatDefaut
=
nouveau
;
}
void
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuils
[
8
]);
void
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuils
Min
[
8
],
const
int
seuilsMax
[
8
]);
const
Etat
&
getEtatSuivant
(
const
Voisinage
&
voisins
)
const
;
};
...
...
@@ -38,13 +41,14 @@ class FonctionAvecEtatCourant {
private:
Etat
etatDefaut
;
RegleAvecEtatCourant
**
regles
;
int
nbRegles
;
public:
FonctionAvecEtatCourant
()
;
FonctionAvecEtatCourant
()
:
regles
(
nullptr
),
nbRegles
(
0
),
etatDefaut
(
etat
){}
~
FonctionAvecEtatCourant
();
const
Etat
&
getEtatDefaut
()
const
{
return
etatDefaut
;
}
void
setEtatDefaut
(
const
Etat
&
nouveau
)
{
etatDefaut
=
nouveau
;
}
void
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuils
[
8
],
const
Etat
&
courant
);
void
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuils
Min
[
8
],
const
int
seuilsMax
[
8
],
const
Etat
&
courant
);
const
Etat
&
getEtatSuivant
(
const
Voisinage
&
voisins
,
const
Cellule
&
cellule
)
const
;
};
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment