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
e6ab6c53
Verified
Commit
e6ab6c53
authored
May 27, 2021
by
Romain De Laage De Bellefaye
🌳
Browse files
Correct compilation error
parent
8c9f2f5d
Changes
5
Hide whitespace changes
Inline
Side-by-side
Fonction_Regle/Fonction.cpp
View file @
e6ab6c53
#include
"Fonction.h"
bool
RegleAvecEtatCourant
::
verify
(
const
Voisinage
&
voisins
,
const
Cellule
&
cellule
)
const
{
if
(
cellule
.
getEtat
()
!=
etatCourant
.
getEtat
()
)
if
(
cellule
.
get
Ind
Etat
()
!=
etatCourant
)
return
false
;
int
nb
[
8
];
VoisinageIter
ato
r
*
cellules
=
voisins
.
creerIterator
();
cellules
.
first
()
a
u
to
*
cellules
=
voisins
.
creerIterator
();
cellules
->
first
()
;
while
(
!
cellules
.
isDone
())
nb
[
cellules
.
currentItem
()
.
getEtat
()]
++
;
while
(
!
cellules
->
isDone
())
nb
[
cellules
->
currentItem
()
->
get
Ind
Etat
()]
++
;
delete
cellules
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
if
(
nb
[
i
]
<
seuilMin
[
i
]
||
nb
[
i
]
>
seuilMax
[
i
])
if
(
nb
[
i
]
<
seuil
s
Min
[
i
]
||
nb
[
i
]
>
seuil
s
Max
[
i
])
return
false
;
return
true
;
...
...
@@ -24,16 +24,16 @@ bool RegleAvecEtatCourant::verify(const Voisinage& voisins, const Cellule& cellu
bool
Regle
::
verify
(
const
Voisinage
&
voisins
)
const
{
int
nb
[
8
];
VoisinageIter
ato
r
*
cellules
=
voisins
.
creerIterator
();
cellules
.
first
()
a
u
to
*
cellules
=
voisins
.
creerIterator
();
cellules
->
first
()
;
while
(
!
cellules
.
isDone
())
nb
[
cellules
.
currentItem
()
.
getEtat
()]
++
;
while
(
!
cellules
->
isDone
())
nb
[
cellules
->
currentItem
()
->
get
Ind
Etat
()]
++
;
delete
cellules
;
for
(
int
i
=
0
;
i
<
8
;
i
++
)
if
(
nb
[
i
]
<
seuilMin
[
i
]
||
nb
[
i
]
>
seuilMax
[
i
])
if
(
nb
[
i
]
<
seuil
s
Min
[
i
]
||
nb
[
i
]
>
seuil
s
Max
[
i
])
return
false
;
return
true
;
...
...
@@ -41,39 +41,39 @@ bool Regle::verify(const Voisinage& voisins) const {
const
Etat
&
Fonction
::
getEtatSuivant
(
const
Voisinage
&
voisins
)
const
{
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
if
(
regles
[
i
]
.
verify
(
voisins
))
return
regles
[
i
]
.
getDestination
;
if
(
regles
[
i
]
->
verify
(
voisins
))
return
regles
[
i
]
->
getDestination
()
;
return
etatDefaut
;
}
const
Etat
&
FonctionAvecEtatCourant
::
getEtatSuivant
(
const
Voisinage
&
voisins
,
const
Cellule
&
cellule
)
const
{
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
if
(
regles
[
i
]
.
verify
(
voisins
,
cellule
))
return
regles
[
i
]
.
getDestination
;
if
(
regles
[
i
]
->
verify
(
voisins
,
cellule
))
return
regles
[
i
]
->
getDestination
()
;
return
etatDefaut
;
}
void
Fonction
::
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsM
ax
[
8
],
const
int
seuilsMax
[
8
])
{
Regle
**
nouveau
=
new
*
Regle
s
[
nbRegles
+
1
];
void
Fonction
::
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsM
in
[
8
],
const
int
seuilsMax
[
8
])
{
Regle
**
nouveau
=
new
Regle
*
[
nbRegles
+
1
];
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
nouveau
[
i
]
=
regles
[
i
];
nouveau
[
nbRegles
]
=
new
Regle
(
destination
,
seuilsM
ax
,
seuilsMax
);
nouveau
[
nbRegles
]
=
new
Regle
(
destination
,
seuilsM
in
,
seuilsMax
);
++
nbRegles
;
delete
[]
regles
;
regles
=
nouveau
;
}
void
FonctionAvecEtatCourant
::
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsM
ax
[
8
],
const
int
seuilsMax
[
8
],
const
Cellule
&
cellule
)
{
RegleAvecEtatCourant
**
nouveau
=
new
*
Regle
s
AvecEtatCourant
[
nbRegles
+
1
];
void
FonctionAvecEtatCourant
::
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsM
in
[
8
],
const
int
seuilsMax
[
8
],
const
int
etat
)
{
RegleAvecEtatCourant
**
nouveau
=
new
RegleAvecEtatCourant
*
[
nbRegles
+
1
];
for
(
int
i
=
0
;
i
<
nbRegles
;
++
i
)
nouveau
[
i
]
=
regles
[
i
];
nouveau
[
nbRegles
]
=
new
RegleAvecEtatCourant
(
destination
,
seuilsM
ax
,
seuilsMax
,
cellule
);
nouveau
[
nbRegles
]
=
new
RegleAvecEtatCourant
(
destination
,
seuilsM
in
,
seuilsMax
,
etat
);
++
nbRegles
;
delete
[]
regles
;
regles
=
nouveau
;
...
...
@@ -93,7 +93,7 @@ FonctionAvecEtatCourant::~FonctionAvecEtatCourant() {
delete
[]
regles
;
}
Regle
::
Regle
(
const
Etat
&
nDestination
,
const
int
nSeuilsM
ax
[
8
],
const
int
nSeuilsMax
[
8
])
:
destination
(
d
est
)
{
Regle
::
Regle
(
const
Etat
&
nDestination
,
const
int
nSeuilsM
in
[
8
],
const
int
nSeuilsMax
[
8
])
:
destination
(
nD
est
ination
)
{
for
(
int
i
=
0
;
i
<
8
;
++
i
)
seuilsMin
[
i
]
=
nSeuilsMin
[
i
];
...
...
@@ -101,7 +101,5 @@ Regle::Regle(const Etat& nDestination, const int nSeuilsMax[8], const int nSeuil
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
;
RegleAvecEtatCourant
::
RegleAvecEtatCourant
(
const
Etat
&
nDestination
,
const
int
nSeuilsMin
[
8
],
const
int
nSeuilsMax
[
8
],
const
int
nEtat
)
:
Regle
(
nDestination
,
nSeuilsMin
,
nSeuilsMax
),
etatCourant
(
nEtat
)
{
}
Fonction_Regle/Fonction.h
View file @
e6ab6c53
...
...
@@ -5,23 +5,25 @@
#include
"../Voisinage/voisinage.hpp"
class
Regle
{
pr
ivate
:
pr
otected
:
int
seuilsMin
[
8
];
int
seuilsMax
[
8
];
private:
Etat
destination
;
public:
Regle
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsM
ax
[
8
]);
Regle
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsM
in
[
8
]);
const
Etat
&
getDestination
()
const
{
return
destination
;
}
bool
verify
(
const
Voisinage
&
voisins
)
const
;
};
class
RegleAvecEtatCourant
:
public
Regle
{
private:
Eta
t
etatCourant
;
in
t
etatCourant
;
public:
RegleAvecEtatCourant
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsM
ax
[
8
],
const
Cellule
&
cellule
);
RegleAvecEtatCourant
(
const
Etat
&
nDestination
,
const
int
nSeuilsMax
[
8
],
const
int
nSeuilsM
in
[
8
],
const
int
nEtat
);
bool
verify
(
const
Voisinage
&
voisins
,
const
Cellule
&
cellule
)
const
;
};
...
...
@@ -47,11 +49,11 @@ class FonctionAvecEtatCourant {
int
nbRegles
;
public:
FonctionAvecEtatCourant
()
:
regles
(
nullptr
),
nbRegles
(
0
),
etatDefaut
(
etat
){}
FonctionAvecEtatCourant
(
const
Etat
&
etat
)
:
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
seuilsMin
[
8
],
const
int
seuilsMax
[
8
],
const
Etat
&
couran
t
);
void
ajouterRegle
(
const
Etat
&
destination
,
const
int
seuilsMin
[
8
],
const
int
seuilsMax
[
8
],
const
int
eta
t
);
const
Etat
&
getEtatSuivant
(
const
Voisinage
&
voisins
,
const
Cellule
&
cellule
)
const
;
};
...
...
Reseau_Cellule_Etat/main.cpp
View file @
e6ab6c53
#include
"autocell.h"
#include
"
GUI/
autocell.h"
#include
"reseau_cellule_etats.h"
#include
<QApplication>
...
...
Reseau_Cellule_Etat/reseau_cellule_etats.h
View file @
e6ab6c53
...
...
@@ -14,16 +14,12 @@ private:
//inline Cellule():indEtat(0), abs(0), ord(0){};
void
initCellule
(
const
unsigned
int
ind
,
const
unsigned
int
&
x
,
const
unsigned
int
&
y
);
friend
class
Reseau
;
<<<<<<<
HEAD
friend
class
RegleVoisinage
;
friend
class
RegleVoisinageNeumann
;
friend
class
RegleVoisinageMoore
;
=======
public:
inline
unsigned
int
getIndEtat
()
const
{
return
indEtat
;}
>>>>>>>
f7848295cdeed771bfc93a109c01fd440c2d61b7
};
class
Etat
{
...
...
Voisinage/voisinage.hpp
View file @
e6ab6c53
...
...
@@ -64,8 +64,6 @@ public:
Cellule
getCelluleCentre
()
const
{
return
*
celluleCentre
;}
const
Cellule
*
getCelluleCentre
()
const
{
return
celluleCentre
;}
void
setr
(
unsigned
int
rayon
);
unsigned
int
getr
()
const
{
return
r
;}
VoisinageIterator
*
creerIterator
()
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