public static void creationFormeColorée(Forme f, Form form) { throw new System.NotImplementedException(); }
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); }
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; } }