Example #1
0
 public void update()
 {
     for (int i = 0; i < tailleI; i++)
     {
         for (int j = 0; j < tailleJ; j++)
         {
             ApplyRules(i, j, this.tableauJeu.matrice[i, j]);
         }
     }
     this.tableauJeu = this.tableauJeuNext;
 }
Example #2
0
        public JeuDeLaVie(int tailleI, int tailleJ)
        {
            this.tailleI    = tailleI;
            this.tailleJ    = tailleJ;
            this.tableauJeu = new Matrice(tailleI, tailleJ);
            Random rnd = new Random();

            for (int i = 0; i < tailleI; i++)
            {
                for (int j = 0; j < tailleJ; j++)
                {
                    int value = rnd.Next(0, 2);
                    tableauJeu.matrice[i, j] = value;
                }
            }
            this.tableauJeuNext = this.tableauJeu;
        }
Example #3
0
        public Spirale(int n)
        {
            if (n % 2 == 1)
            {
                taille  = n;
                spirale = new Matrice(n);
            }
            else
            {
                throw new MatriceException("La matrice doit avoir une taille impaire");
            }

            // Depart

            //Initialisation des valeurs
            int nbPassageTot  = (n / 2);
            int nbPassage     = 0;
            int nbDeplacement = 1;
            int depart        = (n / 2);
            int cpt           = 3; // Placement des deux premières valeurs à la main

            // On met à jour ces valeurs comme la case de depart de chaque itération d'un cycle => facilite l'écriture du code
            int i = depart;
            int j = depart + 1;

            // Le cycle commence à zéro
            int cycle = 0;

            // On place la valeure 1 au milieu de la matrice de taille n
            spirale.matrice[i, i] = 1;

            // On initialise la case de départ du 1er cycle
            spirale.matrice[i, j] = 2;


            // Tant que le nombre de passage max n'est pas effectué, on continue de remplir le tableau en spirale,
            // selon un cycle prédéfini en 4 étapes
            while (nbPassage < nbPassageTot)
            {
                if (cycle == 0)
                {
                    int tmpI = 0;
                    for (int x = 1; x <= nbDeplacement; x++)
                    {
                        spirale.matrice[i - x, j] = cpt;
                        cpt++;
                        tmpI = i - x;
                    }
                    i = tmpI;
                    nbDeplacement++;
                    cycle++;
                }
                if (cycle == 1)
                {
                    int tmpJ = 0;
                    for (int x = 1; x <= nbDeplacement; x++)
                    {
                        spirale.matrice[i, j - x] = cpt;
                        cpt++;
                        tmpJ = j - x;
                    }
                    j = tmpJ;
                    cycle++;
                }
                if (cycle == 2)
                {
                    int tmpI = 0;
                    for (int x = 1; x <= nbDeplacement; x++)
                    {
                        spirale.matrice[i + x, j] = cpt;
                        cpt++;
                        tmpI = i + x;
                    }
                    i = tmpI;
                    cycle++;
                }
                if (cycle == 3)
                {
                    int tmpJ = 0;
                    for (int x = 1; x <= nbDeplacement; x++)
                    {
                        spirale.matrice[i, j + x] = cpt;
                        cpt++;
                        tmpJ = j + x;
                    }
                    cycle = 0;
                    nbPassage++;
                    j             = tmpJ + 1;
                    nbDeplacement = nbDeplacement + 1;
                    if (j < n)
                    {
                        spirale.matrice[i, j] = cpt;
                        cpt++;
                    }
                }
            }
        }