private Vecteur getPointInformation(Coordonnee pointActuel, Coordonnee pointViser)
        {
            int tempX = pointViser.x;
            int tempY = pointViser.y;

            int ponderationVec = 2;
            int nouveauPointX  = tempX;
            int nouveauPointY  = tempY;

            if (tempX < 0)
            {
                nouveauPointX  = sizeX - 1;
                ponderationVec = 1;
            }

            if (tempY < 0)
            {
                nouveauPointY  = sizeY - 1;
                ponderationVec = 1;
            }

            int maxIndexX = sizeX - 1;

            if (tempX > maxIndexX)
            {
                nouveauPointX  = 0;
                ponderationVec = 1;
            }

            int maxIndexY = sizeY - 1;

            if (tempY > maxIndexY)
            {
                nouveauPointY  = 0;
                ponderationVec = 1;
            }

            Coordonnee coord = new Coordonnee()
            {
                x = nouveauPointX, y = nouveauPointY
            };


            if (isObstacle(coord))
            {
                Vecteur vec = new Vecteur()
                {
                    coor = coord, ponderation = ponderationVec, obstacle = true
                };
                return(vec);
            }
            else
            {
                Vecteur vec = new Vecteur()
                {
                    coor = coord, ponderation = ponderationVec, obstacle = false
                };
                return(vec);
            }
        }
 private void add_vertex(Coordonnee name, Vecteur edges)
 {
     if (!graph.ContainsKey(name))
     {
         graph[name] = new List <Vecteur>()
         {
             edges
         };
     }
     else
     {
         List <Vecteur> listEnCours = graph[name];
         listEnCours.Add(edges);
         graph[name] = listEnCours;
     }
 }
        private IEnumerable <Vecteur> getNoeudAutour(Coordonnee pointActuel)
        {
            Stack <Vecteur> stack = new Stack <Vecteur>();

            Vecteur pointGauche = getPointInformation(pointActuel, new Coordonnee()
            {
                x = pointActuel.x - 1, y = pointActuel.y
            });

            if (!pointGauche.obstacle)
            {
                stack.Push(pointGauche);
            }

            Vecteur pointDroite = getPointInformation(pointActuel, new Coordonnee()
            {
                x = pointActuel.x + 1, y = pointActuel.y
            });

            if (!pointDroite.obstacle)
            {
                stack.Push(pointDroite);
            }

            Vecteur pointHaut = getPointInformation(pointActuel, new Coordonnee()
            {
                x = pointActuel.x, y = pointActuel.y + 1
            });

            if (!pointHaut.obstacle)
            {
                stack.Push(pointHaut);
            }

            Vecteur pointBas = getPointInformation(pointActuel, new Coordonnee()
            {
                x = pointActuel.x, y = pointActuel.y - 1
            });

            if (!pointBas.obstacle)
            {
                stack.Push(pointBas);
            }

            return(stack);
        }