Ejemplo n.º 1
0
        public Grille(int taille, int pourcentage, string libelle, int age, int energie)
        {
            // Je n'ai pas compris ce qu'il fallait faire du libellé
            this.taille    = taille;
            grilleCourante = new Cellule[taille, taille];
            grilleAncienne = new Cellule[taille, taille];
            int dim = taille * taille;
            int nbcellulesacreer = (dim * pourcentage) / 100;
            //Console.WriteLine(nbcellulesacreer);
            Random rand = new Random();
            int    iAlea;
            int    jAlea;
            bool   etat = false;

            for (int i = 0; i < grilleCourante.GetLength(0); i++)
            {
                for (int j = 0; j < grilleCourante.GetLength(1); j++)
                {
                    grilleCourante[i, j] = new Cellule(i, j, etat, age, energie);
                    grilleAncienne[i, j] = new Cellule(i, j, etat, age, energie);
                }
            }
            for (int p = 0; p <= nbcellulesacreer; p++)
            {
                int max  = grilleCourante.GetLength(0) - 1;
                int max2 = grilleCourante.GetLength(1) - 1;
                iAlea = rand.Next(0, max);
                jAlea = rand.Next(0, max2);
                grilleCourante[iAlea, jAlea].Etat = true;
                //Console.WriteLine(iAlea + " " + jAlea);
                grilleAncienne[iAlea, jAlea].Etat = true;
            }
        }
Ejemplo n.º 2
0
        } // grillec est clonée dans Grille Ancienne (Grille Tampon)

        public void Reproduction(Cellule macase)
        {
            VoisinNord(macase).Etat               = true;
            VoisinNord(macase).Age                = NUL;
            VoisinNord(macase).Energiepropre      = ENERGIE_INITIALE;
            VoisinNordEst(macase).Etat            = true;
            VoisinNordEst(macase).Age             = NUL;
            VoisinNordEst(macase).Energiepropre   = ENERGIE_INITIALE;
            VoisinNordOuest(macase).Etat          = true;
            VoisinNordOuest(macase).Age           = NUL;
            VoisinNordOuest(macase).Energiepropre = ENERGIE_INITIALE;
            VoisinSud(macase).Etat                = true;
            VoisinSud(macase).Age                = NUL;
            VoisinSud(macase).Energiepropre      = ENERGIE_INITIALE;
            VoisinSudEst(macase).Etat            = true;
            VoisinSudEst(macase).Age             = NUL;
            VoisinSudEst(macase).Energiepropre   = ENERGIE_INITIALE;
            VoisinSudOuest(macase).Etat          = true;
            VoisinSudOuest(macase).Age           = NUL;
            VoisinSudOuest(macase).Energiepropre = ENERGIE_INITIALE;
            VoisinOuest(macase).Etat             = true;
            VoisinOuest(macase).Age              = NUL;
            VoisinOuest(macase).Energiepropre    = ENERGIE_INITIALE;
            VoisinEst(macase).Etat               = true;
            VoisinEst(macase).Age                = NUL;
            VoisinEst(macase).Energiepropre      = ENERGIE_INITIALE;
        } // Reproduction (Règle du Niveau 2)
Ejemplo n.º 3
0
        public Cellule VoisinEst(Cellule macase)
        {
            int a = macase.Ligne;
            int b = macase.Colonne + 1;

            if (b >= grilleCourante.GetLength(1))
            {
                b = 0;
            }
            Cellule voisinest = grilleAncienne[a, b];

            return(voisinest);
        }
Ejemplo n.º 4
0
        } // Écriture de la dernière génération dans un fichier texte (dans Debug)

        #region Voisinage
        public Cellule VoisinNord(Cellule macase)
        {
            int a = macase.Ligne - 1;
            int b = macase.Colonne;

            if (a < 0)
            {
                a = grilleCourante.GetLength(0) - 1;
            }
            Cellule voisinnord = grilleAncienne[a, b];

            return(voisinnord);
        } // Retourne le voisin Nord de macase
Ejemplo n.º 5
0
        public Cellule VoisinOuest(Cellule macase)
        {
            int a = macase.Ligne;
            int b = macase.Colonne - 1;

            if (b < 0)
            {
                b = grilleCourante.GetLength(1) - 1;
            }
            Cellule voisinouest = grilleAncienne[a, b];

            return(voisinouest);
        }
Ejemplo n.º 6
0
        public Cellule VoisinSud(Cellule macase)
        {
            int a = macase.Ligne + 1;
            int b = macase.Colonne;

            if (a >= grilleCourante.GetLength(0))
            {
                a = 0;
            }
            Cellule voisinsud = grilleAncienne[a, b];

            return(voisinsud);
        }
Ejemplo n.º 7
0
        public Cellule VoisinSudOuest(Cellule macase)
        {
            int a = macase.Ligne + 1;
            int b = macase.Colonne - 1;

            if (a >= grilleCourante.GetLength(0))
            {
                a = 0;
            }
            if (b < 0)
            {
                b = grilleCourante.GetLength(1) - 1;
            }
            Cellule voisinsudouest = grilleAncienne[a, b];

            return(voisinsudouest);
        }
Ejemplo n.º 8
0
        } // Retourne le voisin Nord de macase

        public Cellule VoisinNordEst(Cellule macase)
        {
            int a = macase.Ligne - 1;
            int b = macase.Colonne + 1;

            if (a < 0)
            {
                a = grilleCourante.GetLength(0) - 1;
            }
            if (b >= grilleCourante.GetLength(1))
            {
                b = 0;
            }
            Cellule voisinnordest = grilleAncienne[a, b];

            return(voisinnordest);
        }
Ejemplo n.º 9
0
        public Grille(int taille)
        {
            this.taille    = taille;
            grilleCourante = new Cellule[taille, taille];
            grilleAncienne = new Cellule[taille, taille];
            bool etat = false;

            for (int i = 0; i < grilleCourante.GetLength(0); i++)
            {
                for (int j = 0; j < grilleCourante.GetLength(1); j++)
                {
                    grilleCourante[i, j] = new Cellule(i, j, etat);
                    grilleAncienne[i, j] = new Cellule(i, j, etat);
                }
            }
            grilleCourante[1, 3].Etat = true;
            grilleCourante[2, 1].Etat = true;
            grilleCourante[2, 3].Etat = true;
            grilleCourante[3, 2].Etat = true;
            grilleCourante[3, 3].Etat = true;
        }
Ejemplo n.º 10
0
 public Cellule Jeuniveau1(Cellule macase, int cellulesvoisines)
 {
     if (macase.Etat == true)
     {
         if (cellulesvoisines == 2 || cellulesvoisines == 3)
         {
             macase.Etat = true;
         }
         if (cellulesvoisines >= 4 || cellulesvoisines <= 1)
         {
             macase.Etat = false;
         }
     }
     if (macase.Etat == false)
     {
         if (cellulesvoisines == 3)
         {
             macase.Etat = true;
         }
     }
     return(macase);
 } // Règles du Jeu de la Vie Niveau 1
Ejemplo n.º 11
0
        public int NbVoisins(Cellule macase)
        {
            int nbvoisins = 0;

            if (VoisinNord(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinNordEst(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinNordOuest(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinSud(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinSudEst(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinSudOuest(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinOuest(macase).Etat == true)
            {
                nbvoisins++;
            }
            if (VoisinEst(macase).Etat == true)
            {
                nbvoisins++;
            }
            return(nbvoisins);
        } // Calcul du nombre de voisins
Ejemplo n.º 12
0
        } // Règles du Jeu de la Vie Niveau 1

        public Cellule Jeuniveau2(Cellule macase, int cellulesvoisines)
        {
            if (macase.Etat == true)
            {
                macase.Energiepropre += ENERGIE;
                macase.Age           += 1;
                if (cellulesvoisines == 2 || cellulesvoisines == 3)
                {
                    macase.Etat = true;
                }
                if (cellulesvoisines >= 4 || cellulesvoisines <= 1)
                {
                    macase.Etat = false;
                }
                if (macase.Age == AGE_MORT)
                {
                    macase.Etat = false;
                }
                if (macase.Age < AGE_MORT && macase.Energiepropre == ENERGIE_REPRODUCTION)
                {
                    if (cellulesvoisines == 0)
                    {
                        Reproduction(macase);
                        macase.Energiepropre -= ENERGIE_REPRODUCTION;
                    }
                }
            }
            if (macase.Etat == false)
            {
                if (cellulesvoisines == 3)
                {
                    macase.Etat = true;
                }
            }
            return(macase);
        } // Règles du Jeu de la Vie Niveau 2
Ejemplo n.º 13
0
        public Grille(string file)
        {
            try
            {
                string[] lines      = File.ReadAllLines(file);
                int      linescount = File.ReadAllLines(file).Length;
                bool     verif      = true;
                for (int t = 0; t < linescount; t++)
                {
                    int init = lines[0].Length;
                    if (lines[t].Length != init || lines[t].Length != linescount)
                    {
                        verif = false;
                    }
                }
                if (verif == true)
                {
                    this.taille    = linescount;
                    grilleCourante = new Cellule[taille, taille];
                    grilleAncienne = new Cellule[taille, taille];
                    for (int i = 0; i < linescount; i++)
                    {
                        for (int j = 0; j < lines[0].Length; j++)
                        {
                            if (lines[i][j] == '1')
                            {
                                grilleCourante[i, j] = new Cellule(i, j, true);
                                grilleAncienne[i, j] = new Cellule(i, j, true);
                            }
                            if (lines[i][j] == '0')
                            {
                                grilleCourante[i, j] = new Cellule(i, j, false);
                                grilleAncienne[i, j] = new Cellule(i, j, false);
                            }
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Erreur de taille dans le fichier de la matrice");
                }
            }
            catch (FileNotFoundException f)
            {
                Console.WriteLine("Fichier non trouvé");
            }

            /*
             * try {
             *  string[] lines = File.ReadAllLines(file);
             *  int linescount = File.ReadAllLines(file).Length;
             *  bool verif = true;
             *  for (int t = 0; t < linescount; t++)
             *  {
             *      int init = lines[0].Length;
             *      if (lines[t].Length != init || lines[t].Length != linescount)
             *      {
             *          Console.WriteLine("Erreur de taille dans le fichier de la matrice");
             *          verif = false;
             *      }
             *  }
             *  if (verif == true)
             */
        }
Ejemplo n.º 14
0
 public void Clone(Cellule mycell)
 {
     this.ligne   = mycell.ligne;
     this.colonne = mycell.colonne;
     this.etat    = mycell.etat;
 }