Example #1
0
        private void Distribution_Aleatoire()
        {
            clean();

            int    i_carte, i_paire;
            Random g = new Random();
            // On utilise la LotoMachine pour générer une série aléatoire
            LotoMachine hasard = new LotoMachine(nbCartesDansSabot);

            // On veut une série de nbCartesSurTapis cartes parmi celles
            // du réservoir
            int[] tImagesCartes = hasard.TirageAleatoire(nbCartesSurTapis / 2, false);
            // La série d'entiers retournée par la LotoMachine correspondra
            // aux indices des cartes dans le "sabot"

            // Affectation des images aux picturebox
            PictureBox carte, paire;
            int        i_image;

            for (int i = 0; i < nbCartesSurTapis / 2; i++)
            {
                i_carte = g.Next(0, nbCartesSurTapis);
                carte   = (PictureBox)tlp_cartes.Controls[i_carte];
                i_paire = g.Next(0, nbCartesSurTapis);
                paire   = (PictureBox)tlp_cartes.Controls[i_paire];

                while (carte.Tag != null || i_carte == i_paire)
                {
                    i_carte = g.Next(0, nbCartesSurTapis);
                    carte   = (PictureBox)tlp_cartes.Controls[i_carte];
                }

                while (paire.Tag != null || i_carte == i_paire)
                {
                    i_paire = g.Next(0, nbCartesSurTapis);
                    paire   = (PictureBox)tlp_cartes.Controls[i_paire];
                }

                i_image = tImagesCartes[i + 1]; // i_carte + 1 à cause
                // des pbs d'indices
                carte.Tag   = i_image;
                paire.Tag   = i_image;
                carte.Image = il_Sabot.Images[0];
                paire.Image = il_Sabot.Images[0];

                //carte = (PictureBox)tlp_cartes.Controls[rand];
                //carte.Tag = i_image;
            }
        }
Example #2
0
        private void Distribution_Aleatoire()
        {
            // On utilise la LotoMachine pour générer une série aléatoire
            LotoMachine hasard = new LotoMachine(nbCartesDansSabot);

            // On veut une série de nbCartesSurTapis cartes parmi celles
            // du réservoir
            cartesDistribuees = new int[nbCartesSurTapis];
            int[] tImagesCartes_temp = hasard.TirageAleatoire(nbCartesSurTapis / 2, false).Skip(1).ToArray();

            // On copie deux fois le tableau temporaire pour avoir 4 doublons d'images
            tImagesCartes_temp.CopyTo(cartesDistribuees, 0);
            tImagesCartes_temp.CopyTo(cartesDistribuees, nbCartesSurTapis / 2);

            // On mélange le tableau
            Random rnd = new Random();

            cartesDistribuees = cartesDistribuees.OrderBy(x => rnd.Next()).ToArray();
        }
Example #3
0
        /* Méthode distribuant 16 cartes aléatoires parmi les cartes disponibles */
        private void Distribution_Aleatoire()
        {
            PictureBox carte;
            int        i_image, i_carte = 0, i_tapis = 0;
            // On utilise la LotoMachine pour générer une série aléatoire
            LotoMachine hasard = new LotoMachine(NB_CARTES_SABOT);

            // On veut une série de nbCartesSurTapis/2 (pour constituer les paires) cartes parmi celles du réservoir
            tImagesCartes = hasard.TirageAleatoire(NB_CARTES_TAPIS / 2, false);
            // Affectation des images aux picturebox

            // Position aléatoire des cartes
            LotoMachine hasard2 = new LotoMachine(NB_CARTES_TAPIS - 1);

            int[] indiceTapis = hasard2.TirageAleatoire(NB_CARTES_TAPIS - 1, false);

            // On disperse la première moitié des cartes aléatoirement dans le jeu
            while (i_tapis < indiceTapis.Length / 2)
            {
                carte       = (PictureBox)tlpTapisDeCartes.Controls[indiceTapis[i_tapis]];
                i_image     = tImagesCartes[i_carte + 1]; // i_carte + 1 à cause des pbs d'indices
                carte.Image = ilSabotDeCartes.Images[i_image];
                carte.Tag   = i_carte + 1;
                i_tapis++;
                i_carte++;
            }

            i_carte = 0;

            // Puis on remplit le reste du tapis avec les paires manquantes
            while (i_tapis < indiceTapis.Length)
            {
                carte       = (PictureBox)tlpTapisDeCartes.Controls[indiceTapis[i_tapis]];
                i_image     = tImagesCartes[i_carte + 1]; // i_carte + 1 à cause des pbs d'indices
                carte.Image = ilSabotDeCartes.Images[i_image];
                carte.Tag   = i_carte + 1;
                i_tapis++;
                i_carte++;
            }
        }
Example #4
0
        private void Distribuer_aleatoire()
        {
            LotoMachine hasard = new LotoMachine(nbCartesDansSabot);

            int randomNumber;

            tImagesCartes = new int[nbCartesSurTapis];
            tImagesCartes = hasard.TirageAleatoire(nbCartesSurTapis, false);
            int nb = nbCartesSurTapis;

            for (int i = 1; i <= nbCartesSurTapis / 2; i++) //boucle pour rajouter les images déjà présentes dans le tableau à la suite du tableau -> obtenir des paires
            {
                nb += 2;
                tImagesCartes[nb / 2] = tImagesCartes[i];
            }
            //tImagesCartes[5] = tImagesCartes[1];
            //tImagesCartes[6] = tImagesCartes[2];
            //tImagesCartes[7] = tImagesCartes[3];
            //tImagesCartes[8] = tImagesCartes[4];
            List <int> liste = new List <int>(tImagesCartes); //on transforme en liste pour simplifier la suite

            // La série d'entiers retournée par la LotoMachine correspondra
            // aux indices des cartes dans le "sabot"
            // Affectation des images aux picturebox
            PictureBox carte;

            for (int i_carte = 0; i_carte < nbCartesSurTapis; i_carte++)
            {
                randomNumber = random.Next(1, liste.Count);

                carte = (PictureBox)tlpTapisDeCartes.Controls[i_carte];

                carte.Image = ilSabotDeCartes.Images[liste[randomNumber]];
                tImagesCartes[i_carte + 1] = liste[randomNumber];
                liste.RemoveAt(randomNumber); //on supprime la valeur pour ne pas l'avoir encore une fois
            }
        }