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
LO21_Pin_Noir_Boucher_Bouri_Detree
CellulutLO21
Commits
2b464a26
Commit
2b464a26
authored
Apr 19, 2021
by
Eugene Pin
Browse files
Update
#7
parent
62c05886
Pipeline
#76604
passed with stages
in 17 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
include/neighborhood.hpp
View file @
2b464a26
...
...
@@ -5,7 +5,7 @@
\version 1
\brief Neighborhood
Cette classe représente le voisinage d'une cellule.
Cette classe représente le voisinage d'une cellule.
**/
...
...
@@ -15,41 +15,37 @@ Cette classe représente le voisinage d'une cellule.
#include
<vector>
#include
<utility>
#include
"coord.hpp"
using
namespace
std
;
class
Coord
;
class
State
;
/**
\struct Neighbor
\brief Représente une coordonnée avec un état
Cette structure représente une coordonnée de format (x, y) et un état.\n
Cette strucuture permet d'identifier un voisin d'une cellule. coord correspond à la position relative par rapport à la cellule.
struct Neighbor
{
pair<Coord, State>
};
**/
class
Neighborhood
{
//
std::vector<Neighbor> neighborPositions;
//
! \brief Vecteur de voisins contenant la position relative et l'état du voisin
vector
<
pair
<
Coord
,
State
>
>
neighborPositions
;
public:
//! \brief Retourne le nombre de voisin ayant la classe définit en paramètre
//! \brief Retourne le nombre de voisin ayant l'état définit en paramètre
//! \param State : Etat des voisins à rechercher
//! \return Le nombre de voisin
unsigned
int
getNb
(
State
state
);
//! \brief Retourne l'état de la cellule voisine située à la coordonnée relative entrée en paramètre
//! \param Coordonnée du voisin à trouver
//! \return L'état de la cellule
State
getAt
(
Coord
c
);
void
setNeighborPositions
(
Coord
c
,
State
s
)
{
neighborPositions
.
push_back
(
make_pair
(
c
,
s
));
//! \brief Ajoute un voisin au vecteur des voisins. Prend une coordonnée et un état en paramètre
//! \param Coord, State : coordonée relative et état du voisin
void
addNeighbor
(
Coord
c
,
State
s
)
{
if
(
isUnique
(
c
))
neighborPositions
.
push_back
(
make_pair
(
c
,
s
));
}
//! \brief Fonction vérifiant que la coordonnée d'un voisin que l'on souhaite ajouter dans le vecteur neighborPositions est unique
//! \param Coord : Coordonnée à comparer
//! \return retourne vrai si la coordonnée est unique sinon faux s'il existe un doublon
bool
Neighborhood
::
isUnique
(
Coord
c
);
};
#endif // NEIGHBOURHOOD_HPP
#endif // NEIGHBOURHOOD_HPP
\ No newline at end of file
src/neighborhood.cpp
View file @
2b464a26
...
...
@@ -23,5 +23,18 @@ State Neighborhood::getAt(Coord c)
}
}
return
ERROR
;
throw
"Error Neighborhood::getAt"
;
//return ERROR;
}
bool
Neighborhood
::
isUnique
(
Coord
c
)
{
std
::
vector
<
pair
<
Coord
,
State
>
>::
iterator
it
;
for
(
it
=
neighborPositions
.
begin
();
it
!=
neighborPositions
.
end
();
++
it
)
{
if
(
it
->
first
==
c
)
{
return
false
;
}
}
return
true
;
}
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