Пример #1
0
        /// <summary>
        /// Renvoie le voisinage du gagnant
        /// </summary>
        /// <param name="gagnant"></param>
        /// <param name="totalIteration"></param>
        /// <param name="iterationCourante"></param>
        /// <returns></returns>
        private List <KohonenNeurone> Voisinage(KohonenNeurone gagnant, int totalIteration, int iterationCourante)
        {
            // on commence par calculer le rayon
            double rayon = FonctionsAttenuation.Sigma(RayonCarte, totalIteration, iterationCourante);

            // on recherche les neurones présents dans le rayon
            // leurs poids seront ajustés
            List <KohonenNeurone> voisinage = new List <KohonenNeurone>();

            for (int x = 0; x < Grille.GetLength(0); x++)
            {
                for (int y = 0; y < Grille.GetLength(1); y++)
                {
                    KohonenNeurone neurone = Grille[x, y];
                    neurone.Distance = Distance(neurone, gagnant);

                    if (neurone.Distance <= rayon)
                    {
                        voisinage.Add(neurone);
                    }
                }
            }

            Debug.WriteLine("Voisinage: " + voisinage.Count.ToString());
            return(voisinage);
        }
Пример #2
0
        public void Fertiliser(int buff)
        {
            if (buff > 1)
            {
                int x = Position.Key;
                int y = Position.Value;

                Cellule cell = Grille.GetInstance().GetCellule(x + 1, y);
                if (cell)
                {
                    cell.Fertiliser(buff - 1);
                }

                cell = Grille.GetInstance().GetCellule(x - 1, y);
                if (cell)
                {
                    cell.Fertiliser(buff - 1);
                }

                cell = Grille.GetInstance().GetCellule(x, y + 1);
                if (cell)
                {
                    cell.Fertiliser(buff - 1);
                }

                cell = Grille.GetInstance().GetCellule(x, y - 1);
                if (cell)
                {
                    cell.Fertiliser(buff - 1);
                }
            }
        }
Пример #3
0
 /// <summary>
 /// Retire de la grille tous les transversaux d'un mot spécifié
 /// </summary>
 /// <param name="grille"></param>
 /// <param name="motCourant"></param>
 /// <param name="bd"></param>
 /// <param name="afficher"></param>
 public void RetirerMotsTransversaux(Grille grille, Mot motCourant, Bd bd, bool afficher)
 {
     foreach (Lettre lettre in motCourant.ListeLettres)
     {
         RetirerMot(lettre.ObtenirMotDansDirection(!motCourant.Horizontal), grille, bd, afficher);
     }
 }
Пример #4
0
        private Neurone RechercherGagnant(double[] entree)
        {
            double distanceMin = double.MaxValue;
            Neurone gagnant = null;
            for (int n = 0; n < Grille.Length; n++)
            {
                Neurone neurone = Grille.GetValue(n) as Neurone;

                // pour chaque neurone on calcule sa distance euclidienne avec l'entrée
                double somme = 0.0;
                for (int i = 0; i < NbEntrees; i++)
                {
                    double ecart = entree[i] - neurone.Poids[i];
                    somme += ecart * ecart;
                }

                double distance = Math.Sqrt(somme);

                if (distance < distanceMin)
                {
                    distanceMin = distance;
                    gagnant = neurone;
                }
            }

            return gagnant;
        } 
Пример #5
0
 internal Grille columnResolution(Grille grille, int i, int j)
 {
     for (int valueI = 1; valueI <= 9; valueI++)
     {
         if (possibleValues.Contains(valueI))
         {
             bool notTheAnswer = false;
             for (int k = 0; k <= 8; k++)
             {
                 if (k != j)
                 {
                     notTheAnswer = (grille.casesDeSudoku[i, k].possibleValues.Contains(valueI));
                     if (notTheAnswer)
                     {
                         break;
                     }
                 }
             }
             if (!notTheAnswer)
             {
                 valueFound(valueI);
                 grille.modification = true;
                 break;
             }
         }
     }
     return(grille);
 }
Пример #6
0
        public void LinkObject(Coordonnees coor, SujetObserveAbstrait obj, Grille grille)
        {
            if (coor == null)
            {
                return;
            }
            if (!coor.EstValide())
            {
                return;
            }
            if (grille == null)
            {
                return;
            }
            if (TestNullObject(obj))
            {
                return;
            }
            var node = GetNode(coor, grille);

            if (node == null)
            {
                Console.WriteLine("LinkCaseToZone: Impossible de récupérer une node viable en " + coor);
                return;
            }
            AttachObjectToCase(node, obj);
            AttachCaseToObject(node, obj);
        }
Пример #7
0
        /// <summary>
        /// Retourne une grille à partir de son nom
        /// </summary>
        /// <param name="grilleName">Le nom de la grille</param>
        /// <returns>La grille renvoyée</returns>
        public Grille getGrilleByName(string grilleName)
        {
            if (grilleName == null)
            {
                return(null);
            }
            Grille grille = new Grille();

            foreach (object obj in this.liste)
            {
                if (obj is Grille)
                {
                    grille.name = ((Grille)obj).name;
                    grille.oid  = ((Grille)obj).oid;
                }
                else if (obj is BrowserData)
                {
                    grille.name = ((BrowserData)obj).name;
                    grille.oid  = ((BrowserData)obj).oid;
                }
                if (grille.name.ToUpper() == grilleName.ToUpper())
                {
                    return(grille);
                }
            }
            return(null);
        }
Пример #8
0
        public Grille getGrilleByName(string grilleName, ObservableCollection <BrowserData> listeCurrent)
        {
            if (listeCurrent != null && listeCurrent.Count > 0)
            {
                listeCurrent.ToList().AddRange(this.liste);
            }
            else
            {
                listeCurrent = this.liste;
            }

            Grille grille = new Grille();

            foreach (object obj in listeCurrent)
            {
                if (obj is Grille)
                {
                    grille.name = ((Grille)obj).name;
                    grille.oid  = ((Grille)obj).oid;
                }
                else if (obj is BrowserData)
                {
                    grille.name = ((BrowserData)obj).name;
                    grille.oid  = ((BrowserData)obj).oid;
                }
                if (grille.name.ToUpper() == grilleName.ToUpper())
                {
                    return(grille);
                }
            }
            return(null);
        }
Пример #9
0
 internal Grille Detection(Grille grille, int i, int j)
 {
     rowDetection(grille, i, j);
     columnDetection(grille, i, j);
     houseDetection(grille, i, j);
     return(grille);
 }
 public void FillGrid(Grille grid)
 {
     if (grid == null)
     {
         return;
     }
 }
Пример #11
0
 public void ConstruireGrilleVide(string gridAsString)
 {
     grille = new Grille(gridAsString);
     for (int y = 0; y < grille.nbLignes; y++)
     {
         for (int x = 0; x < grille.nbLignes; x++)
         {
             if (grille.listeLettres[x, y].valeur != null)
             {
                 grille.listeLettres[x, y].Go         = Object.Instantiate(whiteSpace, new Vector3((float)x, (float)-y, 0.0f), Quaternion.identity);
                 grille.listeLettres[x, y].GoText     = grille.listeLettres[x, y].Go.GetComponentInChildren <TextMesh>();
                 grille.listeLettres[x, y].GoRenderer = grille.listeLettres[x, y].Go.GetComponent <SpriteRenderer>();
             }
             else
             {
                 grille.listeLettres[x, y].Go = Object.Instantiate(blackSpace, new Vector3((float)x, (float)-y, 0.0f), Quaternion.identity);
             }
         }
     }
     for (int y = 0; y < grille.nbLignes; y++)
     {
         GameObject numero = Object.Instantiate(greySpace, new Vector3(-1.0f, (float)-y, 0.0f), Quaternion.identity);
         numero.GetComponentInChildren <TextMesh>().text = (y + 1).ToString();
         listeNumeros.Add(numero);
     }
     for (int x = 0; x < grille.nbColonnes; x++)
     {
         GameObject numero = Object.Instantiate(greySpace, new Vector3((float)x, 1.0f, 0.0f), Quaternion.identity);
         numero.GetComponentInChildren <TextMesh>().text = (x + 1).ToString();
         listeNumeros.Add(numero);
     }
     bd = new Bd(fichiersDicos, tailleGrille);
     Selecteur.Instance.Initialiser();
 }
Пример #12
0
    /// <summary>
    /// Sauvegarde la grille dans un fichier
    /// </summary>
    /// <param name="grille"></param>
    /// <param name="nom"></param>
    public void SauvegarderGrille(Grille grille, bool avecSolution)
    {
        string destination = "";

        if (avecSolution)
        {
            destination = Application.persistentDataPath + "/GrillesPleines/";
        }
        else
        {
            destination = Application.persistentDataPath + "/GrillesVides/";
        }

        int        idNumber   = Directory.GetFiles(destination, "*", SearchOption.TopDirectoryOnly).Length + 1;
        string     nomFichier = "Grille" + idNumber + ".dat";
        FileStream file;

        if (File.Exists(destination))
        {
            Debug.Log("ERREUR: Une grille portant le ID généré existe déjà.");
            return;
        }
        else
        {
            file = File.Create(destination + nomFichier);
        }
        BinaryFormatter bf = new BinaryFormatter();

        bf.Serialize(file, new GrilleSerializable(grille, avecSolution));
        file.Close();
        Debug.Log("Grille sauvegardée sous " + nomFichier);
    }
Пример #13
0
 public void AddGrilleIfNatExist(Grille grille)
 {
     if (getGrilleByName(grille.name) != null)
     {
         return;
     }
     AddGrille(grille);
 }
 private void Start()
 {
     m_Grille      = FindObjectOfType <Grille>();
     m_AudioSource = GetComponent <AudioSource>();
     m_perso       = FindObjectOfType <PersoController>().gameObject;
     GunPos        = m_perso.transform.GetChild(0).gameObject;
     m_Shooting    = m_perso.GetComponent <Shooting>();
 }
 public GridManagerBingo(Grille <int> grille, int ind)
 {
     tileReference = GameObject.Find("TilePrefab");
     this.grille   = grille;
     this.colonne  = grille.getCols();
     this.ligne    = grille.getRows();
     this.ind      = ind;
 }
Пример #16
0
        protected override Grille GetNewGrid()
        {
            Grille grid = new Grille();

            grid.report            = true;
            grid.name              = getNewPageName("Report Grid");
            grid.group             = GetInputGridService().GroupService.getDefaultGroup();
            grid.visibleInShortcut = true;
            return(grid);
        }
Пример #17
0
        public MainWindow()
        {
            InitializeComponent();
            circuit = new CircuitPersonnalise();
            Wires   = new List <Wire>();

            Grille.AddHandler(Gate.DeletingGateEvent, new RoutedEventHandler(Supprimer));
            Grille.AddHandler(Wire.SuppwireEvent, new RoutedEventHandler(Supp_Wire));
            Grille.AddHandler(InputOutput.SupprimerWireEvent, new RoutedEventHandler(SupprimerWire));
        }
Пример #18
0
    void Start()
    {
        positionCible = transform.position;
        grille        = GameObject.Find("A*").GetComponent <Grille>();

        enMouvement = false;
        pathfinder  = GameObject.Find("A*").GetComponent <PathFinding> ();

        StartCoroutine(sonMouvement());
    }
Пример #19
0
 private void CreerTableauDeJeu()
 {
     if (Grille.HasInstance())
     {
         return;
     }
     TableauDeJeu = (Grille)Grille.Instance(Longueur, Largeur);
     this.Fenetre = new Window(600, 600, this);
     //Attach(Fenetre);
 }
Пример #20
0
 /// <summary>
 /// Apres que les fantomes aillent ete manger, permet de savoir si un fantome doit etre relachger
 /// </summary>
 private void VérifierSiFantômeÀRelacher()
 {
     // On va relacher un fantome chaque 6 secondes - (1 demie secondes par niveau)
     if (--m_cptFantômesMorts % (FrameRateValue * 6 - (Niveau / 5 * FrameRateValue / 2)) == 0)
     {
         Fantôme fantôme = m_listeFantômesMangers.Dequeue();
         m_listeFantômesActifs.Add(fantôme);
         fantôme.MettreAJourCoordonnée(Grille.TrouverCoordonnéeCase(14, 11));
     }
 }
Пример #21
0
 internal Grille autoResolution(Grille grille, int i, int j)
 {
     grille.modification = false;
     if (possibleValues.Count == 1)
     {
         valueFound(possibleValues[0]);
         grille.modification = true;
     }
     return(grille);
 }
Пример #22
0
    // Use this for initialization
    void Start()
    {
        if (_instance)
        {
            Destroy(_instance);
        }
        _instance = this;

        GenerateTerrain();
    }
Пример #23
0
 /// <summary>
 /// Methode de selection du treeview qui renvoit l'élément selectionné
 /// et cet élément une grille est transmise au GrilleTreeview
 /// par l'évènement OnClick
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnTreeNodeClick(object sender, MouseButtonEventArgs e)
 {
     if (GrilleTree.SelectedItem != null && GrilleTree.SelectedItem is BrowserData && SelectionChanged != null)
     {
         Grille grille = new Grille();
         grille.name = ((BrowserData)GrilleTree.SelectedItem).name;
         grille.oid  = ((BrowserData)GrilleTree.SelectedItem).oid;
         SelectionChanged(grille);
         e.Handled = true;
     }
 }
Пример #24
0
 public Window(int width, int height, GameManager manager)
     : base(width, height)
 {
     Gestionnaire = manager;
     manager.Attach(this);
     tableau = Gestionnaire.TableauDeJeu;
     Touches = new Clavier(this);
     Graphismes = new Graphisme(this);
     //this.
     //Run(60.0);  // Run the game at 60 updates per second
 }
Пример #25
0
        /// <summary>
        /// Ramene tout les objets animables a leur position initiales
        /// </summary>
        private void RéinitialiserPositions()
        {
            Pacman.MettreAJourCoordonnée(new Coordonnée(CentreX, Grille.TrouverCoordonnéeCase(0, 17).Y));
            Pacman.Déplacer(Déplacement.Arrêt);

            m_listeFantômes.ForEach(f =>
            {
                f.RéinitialiserPosition();
                f.Déplacer(Déplacement.Arrêt);
            });
        }
Пример #26
0
 public Window(int width, int height, GameManager manager)
     : base(width, height)
 {
     Gestionnaire = manager;
     manager.Attach(this);
     tableau    = Gestionnaire.TableauDeJeu;
     Touches    = new Clavier(this);
     Graphismes = new Graphisme(this);
     //this.
     //Run(60.0);  // Run the game at 60 updates per second
 }
Пример #27
0
        static public Questionnaire Run()
        {
            Questionnaire questionnaire = new Questionnaire();
            OrderedBag<Grille> OPEN = new OrderedBag<Grille>();
            OrderedBag<Grille> CLOSE = new OrderedBag<Grille>();
            Grille S = new Grille();
            OPEN.Add(S);
            while (OPEN.Count != 0)
            {
                Grille n = OPEN.RemoveFirst();
                CLOSE.Add(n);
                questionnaire.solutionsExplorer.Add(n.getStringEtat());
                if (n.getDistanceSolution() == 0)
                {
                    questionnaire.solutionMot = n.getSolutionMot();
                    questionnaire.solutionVisuelle = n.getSolutionVisuelle();
                    for (int i = 0; i < questionnaire.solutionVisuelle.Count; i++)
                    {

                        Console.Write("\n---Étape" + i + "----\n" +  questionnaire.solutionVisuelle[i] + "----------");
                    }
                    return questionnaire;
                }
                foreach (Grille nPrime in n.getListSuccessor())
                {
                    questionnaire.etatExplorer.Add(nPrime.getStringEtat());
                    if (Contient(OPEN, nPrime) != -1)
                    {
                        int position = Contient(OPEN, nPrime);
                        if (nPrime.getTotalDistance() < OPEN[position].getTotalDistance())
                        {
                            OPEN.Remove(OPEN[position]);
                            OPEN.Add(nPrime);
                        }
                    }
                    else if (Contient(CLOSE, nPrime) != -1)
                    {
                        int position = Contient(CLOSE, nPrime);
                        if (nPrime.getTotalDistance() < CLOSE[position].getTotalDistance())
                        {
                            CLOSE.Remove(CLOSE[position]);
                            OPEN.Add(nPrime);
                        }
                    }
                    else // Ni dans Close , ni dans OPEN
                    {
                        OPEN.Add(nPrime);
                    }
                }
            }
            questionnaire.solutionMot = "Aucun chemin possible";
            return questionnaire;
        }
Пример #28
0
 /// <summary>
 /// Retire un inputTable de la liste
 /// </summary>
 /// <param name="inputTable">L'inputTable à modifier</param>
 public void RemoveGrille(Grille grille)
 {
     foreach (BrowserData data in this.liste)
     {
         if (data.name == grille.name)
         {
             this.liste.Remove(data);
             this.cvs.DeferRefresh();
             return;
         }
     }
 }
Пример #29
0
 internal Grille columnDetection(Grille grille, int i, int j)
 {
     for (int k = 0; k <= 8; k++)
     {
         if (grille.casesDeSudoku[i, k].isSolved && (k != j) && possibleValues.Contains(grille.casesDeSudoku[i, k].value))
         {
             possibleValues.Remove(grille.casesDeSudoku[i, k].value);
             grille.modification = true;
         }
     }
     return(grille);
 }
Пример #30
0
 public void creationGrille(int hauteurGr, int largeurGr, bool is_Player)
 {
     if (is_Player)
     {
         Grille grille = new Grille(new Coordonnée(hauteurGr, largeurGr));
     }
     else
     {
         return(user2Grille = new Grille(hauteurGr, largeurGr));
     }
     //Grille userGrille = new Grille();
 }
Пример #31
0
        static private int Contient(OrderedBag<Grille> set, Grille g)
        {

            for (int i = 0; i < set.Count; i++)
            {
                if (set[i].getStringEtat() == g.getStringEtat())
                {
                    return i;
                }
            }
            return -1;
        }
Пример #32
0
    /// <summary>
    /// Remplir la grille
    /// </summary>
    /// <param name="bd"></param>
    /// <param name="listeMots"></param>
    /// <param name="nbEssaisMaxGlobal"></param>
    /// <param name="nbEssaisMaxPourMot"></param>
    /// <param name="afficher"></param>
    public void RemplirGrille(Bd bd, Grille grille, int nbEssaisMaxGlobal, int nbEssaisMaxPourMot, bool afficher)
    {
        int  nbEssaisGlobal = 0;
        bool trier          = false;

        CalculerScoresDesMots(grille.listeMotsARemplir);
        Mot motARemplir = ObtenirProchainMotARemplir(grille, true);

        while (motARemplir != null && nbEssaisGlobal < nbEssaisMaxGlobal)
        {
            //Debug.Log((motARemplir.Horizontal ? "Horizontal " : "Vertical ") + motARemplir.PositionPrimaire + ":" + motARemplir.PositionSecondaire);
            if (motARemplir.nbTentativesDeRemplissage == 10)
            {
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
            }
            else if (motARemplir.nbTentativesDeRemplissage == 20)
            {
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
            }
            else if (motARemplir.nbTentativesDeRemplissage == 30)
            {
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
            }
            else if (motARemplir.nbTentativesDeRemplissage == 40)
            {
                RetirerMotsTransversaux(grille, motARemplir, bd, afficher);
                motARemplir.nbTentativesDeRemplissage = 0;
            }
            //RemplirMotSelonScore(motARemplir, bd, nbEssaisMaxPourMot, afficher);
            RemplirMot(motARemplir, bd, nbEssaisMaxPourMot, afficher);
            motARemplir.nbTentativesDeRemplissage++;
            if (!motARemplir.Rempli)
            {
                RetirerMotAleatoire(grille, motARemplir, bd, afficher);
            }
            else
            {
                motARemplir.CalculerScoreDesMotsTransversaux();
                grille.listeMotsARemplir.Remove(motARemplir);
                trier = true;
            }
            nbEssaisGlobal++;
            motARemplir = ObtenirProchainMotARemplir(grille, trier);
        }
        if (nbEssaisGlobal == 0)
        {
            Debug.Log("Grille déjà remplie");
        }
    }
Пример #33
0
        public static Game CreerJeu(NomJeu nomjeu, GameManager manager, Grille grille)
        {
            switch (nomjeu)
            {
            case NomJeu.AgeOfKebab: return(new GameAgeOfKebabFactory().CreerJeu());

            case NomJeu.CDGSimulator: return(new GameCDGSimulatorFactory().CreerJeu());

            case NomJeu.Honeyland: return(new GameHoneylandFactory().CreerJeu());
            }

            return(null);
        }
Пример #34
0
 private List<ArrayList> RecupererChemins(Grille grille,Coordonnees casedepart, List<ObjetAbstrait> objets)
 {
     if(grille == null) throw new NullReferenceException("La grille renseignée est nulle !");
     var list = new List<ArrayList>();
     foreach (var obj in objets)
     {
         var chemin = grille.Route(casedepart, obj.Case);
         grille.ReinitialiserMinDistances();
         list.Add(chemin);
     }
     return list;
     //return objets.Select(obj => grille.Route(casedepart, obj.Case)).ToList();
 }
Пример #35
0
 public void LinkObject(Coordonnees coor, SujetObserveAbstrait obj, Grille grille)
 {
     if (coor == null) return;
     if (!coor.EstValide()) return;
     if(grille == null) return;
     if (TestNullObject(obj)) return;
     var node = GetNode(coor,grille);
     if (node == null)
     {
         Console.WriteLine("LinkCaseToZone: Impossible de récupérer une node viable en " + coor);
         return;
     }
     AttachObjectToCase(node, obj);
     AttachCaseToObject(node, obj);
 }
Пример #36
0
 private void CreerTableauDeJeu()
 {
     if (Grille.HasInstance()) return;
     TableauDeJeu = (Grille)Grille.Instance(Longueur, Largeur);
     this.Fenetre = new Window(600,600,this);
     //Attach(Fenetre);
 }
Пример #37
0
    void Start()
    {
        alarm=AudioManager.getInstance ().loadAudio ("Alarm", Camera.main.transform.position);
        alarm.gameobject.GetComponent<AudioSource> ().Play ();
        currentTurret = laser;
        start = System.DateTime.Now;
        aStar=new AStar<Hexagone>();
        grille = new Grille ();
        for(int i = -9;i<10;i++){
            for(int j=-9;j<10;j++){
                grille.AddHexa(new Hexagone(grille,i,j,obj));
            }
        }
        startH = grille.GetHexa (startX, startY);
        endH = grille.GetHexa (endX, endY);

        endCollider.gameObject.transform.position = endH.centre () + new Vector3 (0f, 0.5f, 0.0f);

        ennemi.transform.localScale= new Vector3 (0.5f, 0.5f, 0.5f);

        ennemies=new Pool<Ennemi>(new Ennemi(ennemi,startH,endH,ennemiLife));

        grille.UpdateColor ();

        updatePath ();
    }
Пример #38
0
 private Node<Case> GetNode(Coordonnees coor, Grille grille)
 {
     return (Node<Case>)grille[coor.X, coor.Y];
 }
Пример #39
0
    /* Génération des meshs 3D */
    public void GenerationMesh(int[,] map, float tailleCarre) {

        /*O vide les liste lors de la génération d'une autre nouvelle map */
		triangleDictionnaire.Clear ();
		contours.Clear ();
		sommetsVus.Clear ();
        objetPosition.Clear();

        /* Represente la map avec ses pieces et murs */
        grille = new Grille(map, tailleCarre);

        /* Listes des sommets et des triangles des meshs */
		sommets = new List<Vector3>();
		triangles = new List<int>();

        /* On va creer des triangles à partir des carrés en liant les nodes actives entre elles
        *  Cela permet d'avoir une map plus réaliste, moins carré.
        */
		for (int x = 0; x < grille.carres.GetLength(0); x ++) {
			for (int y = 0; y < grille.carres.GetLength(1); y ++) {
				TriangulationCarre(grille.carres[x,y]);
			}
		}

        /* Creation d'une mesh, comprend des sommets, des triangles et des uvs */
		Mesh mesh = new Mesh();
		cave.mesh = mesh;

		mesh.vertices = sommets.ToArray();
		mesh.triangles = triangles.ToArray();
		mesh.RecalculateNormals();

        /* Les uvs servent à placer les textures */
		int tileAmount = 10;
		Vector2[] uvs = new Vector2[sommets.Count];
		for (int i =0; i < sommets.Count; i ++) {
			float percentX = Mathf.InverseLerp(-map.GetLength(0)/2*tailleCarre,map.GetLength(0)/2*tailleCarre,sommets[i].x) * tileAmount;
			float percentY = Mathf.InverseLerp(-map.GetLength(0)/2*tailleCarre,map.GetLength(0)/2*tailleCarre,sommets[i].z) * tileAmount;
			uvs[i] = new Vector2(percentX,percentY);
		}
		mesh.uv = uvs;

        /* Si le jeu est en 2D */
        /*if (est2D) {
			Generate2DColliders();
		} else {
			CreateWallMesh ();
		}*/

        /* On rajoute les meshs 3D des murs */
        CreationMeshMur();

        /* On ajoute sur la map les élements de jeu */
        System.Random pseudoRandom = new System.Random();
        Transform player = GameObject.Find("Joueur").transform;
        GameObject pickUps = GameObject.Find("Pick Ups");
        /* Position aléatoire du joueur */
        aleatoireObjetSurMap(pseudoRandom, new List<Transform>() { player }, map, tailleCarre);


        foreach (Transform child in pickUps.transform)
        {
            /* Position aléatoire des pick up */
            aleatoireObjetSurMap(pseudoRandom, new List<Transform>() { child }, map, tailleCarre);
        }


	}
 public ConstructionGrilleCDGSimulator(Grille grille)
     : base(grille)
 {
 }
 public ConstructionGrilleHoneyland(Grille grille)
     : base(grille)
 {
 }
 protected ConstructionGrilleStrategy(Grille tableau)
 {
     Tableau = tableau;
 }
 public ConstructionGrilleAOK(Grille tableau)
     : base(tableau)
 {
 }