Exemple #1
0
 public static void creationFormeColorée(Forme f, Form form)
 {
     throw new System.NotImplementedException();
 }
Exemple #2
0
        public static Forme[,] selectionFormes(Perception regle)
        {
            Forme [,] tableauForme = new Forme[3, 4];
            Random rnd = new Random();

            string[,] arrayLetters = new string[3, 4] {
                { "A", "B", "C", "D" }, { "E", "F", "G", "H" }, { "I", "J", "K", "L" }
            };
            string formeVoulue   = regle._forme;
            string couleurVoulue = regle._couleur;
            string couleur       = "";
            string forme         = "";
            int    largeur       = 50;
            int    hauteur       = 50;

            //on place aléatoirement les 3 ou 4 formes à reperer
            nbFormeVoulue = rnd.Next(3, 5);
            int cptFormeVoulue = 0;

            tableauFormeVoulue = new Forme[nbFormeVoulue];

            while (cptFormeVoulue < nbFormeVoulue)
            {
                int i = rnd.Next(0, 3);
                int j = rnd.Next(0, 4);
                if (tableauForme[i, j] == null)   //on crée une nouvelle forme qu'a un emplacement ou il n'y en a pas déjà
                {
                    tableauForme[i, j] = new Forme(couleurVoulue, formeVoulue, rndNumbersTab[i, j], 25 + 105 * j, 30 + 95 * i, arrayLetters[i, j], largeur, hauteur);
                    tableauFormeVoulue[cptFormeVoulue] = tableauForme[i, j];
                    cptFormeVoulue++;   //on change d'indice que si on crée une nouvelle forme
                }
            }

            for (int i = 0; i < 3; i++)    //on place toutes les autres
            {
                for (int j = 0; j < 4; j++)
                {
                    if (tableauForme[i, j] == null)      // on ne remplit le tableau que s'il est vide, soit s'il y a pas de forme voulue deja à cette position
                    {
                        int rndCouleur = rnd.Next(1, 3); //1=Bleu, 2=jaune
                        int rndForme   = rnd.Next(1, 3);

                        switch (rndCouleur)
                        {
                        case 1:
                            couleur = "Blue";
                            break;

                        case 2:
                            couleur = "Yellow";
                            break;
                        }
                        switch (rndForme)
                        {
                        case 1:
                            forme = "Rectangle";
                            break;

                        case 2:
                            forme = "Rond";
                            break;
                        }
                        if (couleur != couleurVoulue)
                        {
                            tableauForme[i, j] = new Forme(couleur, forme, rndNumbersTab[i, j], 25 + 105 * j, 30 + 95 * i, arrayLetters[i, j], largeur, hauteur);
                        }
                        else
                        {
                            if (forme != formeVoulue)
                            {
                                tableauForme[i, j] = new Forme(couleur, forme, rndNumbersTab[i, j], 25 + 105 * j, 30 + 95 * i, arrayLetters[i, j], largeur, hauteur);
                            }
                            else   // on ne crée aucune forme car c'était une "formeVoulue" qui a été tiré donc on passe pas à la colonne suivante
                            {
                                j--;
                            }
                        }
                    }
                }
            }
            return(tableauForme);
        }
Exemple #3
0
        public static void creationFormeColorée(Forme f, Form form)     // la mettre dans la classe forme et la généraliser avec celle de perception
        {
            int        largeur     = f.largeur;
            int        hauteur     = f.hauteur;
            SolidBrush blueBrush   = new SolidBrush(Color.FromArgb(63, 81, 181));
            SolidBrush yellowBrush = new SolidBrush(Color.FromArgb(255, 235, 59));
            SolidBrush redBrush    = new SolidBrush(Color.FromArgb(254, 67, 54));
            SolidBrush blackBrush  = new SolidBrush(Color.Black);

            Graphics formGraphics = form.CreateGraphics();

            Point[] triangle = new Point[] { new Point(129, 279), new Point(229, 279), new Point(179, 179) };    //sommet gauche, sommet droite, sommet haut

            switch (f.couleur)
            {
            case "Blue":
                switch (f.forme)
                {
                case "Rectangle":

                    formGraphics.FillRectangle(blueBrush, new Rectangle(f.positionX, f.positionY, largeur, hauteur));
                    break;

                case "Rond":
                    formGraphics.FillEllipse(blueBrush, new Rectangle(f.positionX, f.positionY, largeur, hauteur));
                    break;

                case "Triangle":
                    formGraphics.FillPolygon(blueBrush, triangle);
                    break;
                }

                blueBrush.Dispose();
                formGraphics.Dispose();

                break;

            case "Yellow":
                switch (f.forme)
                {
                case "Rectangle":

                    formGraphics.FillRectangle(yellowBrush, new Rectangle(f.positionX, f.positionY, largeur, hauteur));
                    break;

                case "Rond":
                    formGraphics.FillEllipse(yellowBrush, new Rectangle(f.positionX, f.positionY, largeur, hauteur));
                    break;

                case "Triangle":
                    formGraphics.FillPolygon(yellowBrush, triangle);
                    break;
                }

                yellowBrush.Dispose();
                formGraphics.Dispose();

                break;

            case "Red":
                switch (f.forme)
                {
                case "Rectangle":

                    formGraphics.FillRectangle(redBrush, new Rectangle(f.positionX, f.positionY, largeur, hauteur));
                    break;

                case "Rond":
                    formGraphics.FillEllipse(redBrush, new Rectangle(f.positionX, f.positionY, largeur, hauteur));
                    break;

                case "Triangle":
                    formGraphics.FillPolygon(redBrush, triangle);
                    break;
                }

                redBrush.Dispose();
                formGraphics.Dispose();
                break;
            }
        }