public void PentagoneType(Polygone monPoly) { bool isPentagone = false; if (monPoly.NombreCoteParallele > 5 || monPoly.NombreAngleDroit > 5 || monPoly.NombreCoteMemeTaille > 5 || monPoly.NombreCoteParallele > 5) { isPentagone = false; } else { switch (monPoly.NombreCoteMemeTaille) { case 1: case 2: case 0: if (monPoly.NombreAngleDroit < 4 && monPoly.NombreCoteParallele < 4) { isPentagone = true; } break; case 3: if (monPoly.NombreCoteParallele < 3 && monPoly.NombreAngleDroit < 3) { isPentagone = true; } break; case 4: case 5: if (monPoly.NombreCoteParallele == 0 && monPoly.NombreAngleDroit == 0) { isPentagone = true; } break; } } if (isPentagone) { monPoly.retour = "Ceci est un pentagone"; monPoly.ColorDefinie = Polygone.Green; } else { monPoly.retour = "Ceci n'est pas un polygone"; monPoly.ColorDefinie = Polygone.Red; } }
/// <summary> /// Détermine le type de triangle /// </summary> /// <param name="monPoly">Le polygone</param> /// <returns>Retourne le Type du Triangle</returns> public void TriangleType(Polygone monPoly) { if (monPoly.NombreCoteParallele > 0 || monPoly.NombreAngleDroit > 1 || monPoly.NombreCoteMemeTaille > 3) { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } else if (monPoly.NombreAngleDroit == 0) { switch (monPoly.NombreCoteMemeTaille) { case 2: monPoly.retour = "Ceci est un triangle Isoscele"; monPoly.ColorDefinie = Polygone.Green; break; case 3: monPoly.retour = "Ceci est un triangle Equilateral"; monPoly.ColorDefinie = Polygone.Green; break; default: monPoly.retour = "Ceci est un Triangle"; monPoly.ColorDefinie = Polygone.Green; break; } } else { switch (monPoly.NombreCoteMemeTaille) { case 2: monPoly.retour = "Ceci est un triangle isocèle"; monPoly.ColorDefinie = Polygone.Green; break; case 3: monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; break; default: monPoly.retour = "Ceci est un triangle Rectangle"; monPoly.ColorDefinie = Polygone.Green; break; } } }
/// <summary> /// Détermine le type de quadrilatere /// </summary> /// <param name="monPoly">Le polygone</param> /// <returns>Retourne le Type du Quadrilatere</returns> public void QuadrilatereType(Polygone monPoly) { if (monPoly.NombreCoteParallele > 4 || monPoly.NombreAngleDroit > 4 || monPoly.NombreCoteMemeTaille > 4 || monPoly.NombreCoteParallele > 4) { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } switch (monPoly.NombreCoteParallele) { case 1: case 3: default: monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; break; case 4: switch (monPoly.NombreCoteMemeTaille) { case 0: case 1: case 3: default: monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; break; case 2: if (monPoly.NombreAngleDroit == 4) { monPoly.retour = "Ceci est un rectangle"; monPoly.ColorDefinie = Polygone.Green; } else if (monPoly.NombreAngleDroit == 0) { monPoly.retour = "Ceci est un parallélogramme quelconque"; monPoly.ColorDefinie = Polygone.Green; } else { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } break; case 4: if (monPoly.NombreAngleDroit == 0) { monPoly.retour = "Ceci est un losange"; monPoly.ColorDefinie = Polygone.Green; } else if (monPoly.NombreAngleDroit == 4) { monPoly.retour = "Ceci est un carré"; monPoly.ColorDefinie = Polygone.Green; } else { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } break; } break; case 2: switch (monPoly.NombreCoteMemeTaille) { case 0: if (monPoly.NombreAngleDroit == 2) { monPoly.retour = "Ceci est un trapèze rectangle"; monPoly.ColorDefinie = Polygone.Green; } else if (monPoly.NombreAngleDroit == 0) { monPoly.retour = "Ceci est un trapèze quelconque"; monPoly.ColorDefinie = Polygone.Green; } else { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } break; case 2: if (monPoly.NombreAngleDroit == 0) { monPoly.retour = "Ceci est un trapèze isocèle"; monPoly.ColorDefinie = Polygone.Green; } else { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } break; case 1: case 3: case 4: default: monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; break; } break; case 0: switch (monPoly.NombreCoteMemeTaille) { case 1: case 4: default: monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; break; case 0: if (monPoly.NombreAngleDroit > 2) { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } else { monPoly.retour = "Ceci est un quadrilatère quelconque"; monPoly.ColorDefinie = Polygone.Green; } break; case 2: if (monPoly.NombreAngleDroit > 1) { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } else { monPoly.retour = "Ceci est un quadrilatère quelconque"; monPoly.ColorDefinie = Polygone.Green; } break; case 3: if (monPoly.NombreAngleDroit > 1) { monPoly.retour = "Ceci n'est pas un Polygone"; monPoly.ColorDefinie = Polygone.Red; } else { monPoly.retour = "Ceci est un quadrilatère quelconque"; monPoly.ColorDefinie = Polygone.Green; } break; } break; } }
private void Button_Click(object sender, RoutedEventArgs e) { int Cote = 0; int Angle = 0; int MemeTaille = 0; int NombreParallele = 0; string Error = ""; bool isError = false; if (!int.TryParse(NombreCote.Text, out Cote)) { Error = "Le cote doit être un entier. \r\n"; isError = true; } if (!int.TryParse(AngleDroit.Text, out Angle) && !String.IsNullOrEmpty(AngleDroit.Text)) { Error += "Le nombre d'angle droit doit être un entier. \r\n"; isError = true; } if (!int.TryParse(Taille.Text, out MemeTaille) && !String.IsNullOrEmpty(Taille.Text)) { Error += "Le nombre de cote ayant la même taille doit être un entier. \r\n"; isError = true; } if (!int.TryParse(Parrallele.Text, out NombreParallele) && !String.IsNullOrEmpty(Parrallele.Text)) { Error += "Le nombre de coté parallele doit être un entier."; isError = true; } if (isError) { Resultat.Text = Error; Resultat.Foreground = new SolidColorBrush(Color.FromRgb(255, 0, 0)); } else { MemeTaille = MemeTaille == 1 ? 0 : MemeTaille; NombreParallele = NombreParallele == 1 ? 0 : NombreParallele; //Vérification si on connait pas déjà Polygone MonSuperPolygone = Polygone.PolygoneConnue.SingleOrDefault(x => x.NombreAngleDroit == Angle && x.NombreCote == Cote && x.NombreCoteMemeTaille == MemeTaille && x.NombreCoteParallele == NombreParallele); //Sinon on le traite if (MonSuperPolygone == null) { MonSuperPolygone = new Polygone(Cote, Angle, MemeTaille, NombreParallele); MonSuperPolygone.Traitement(); Polygone.PolygoneConnue.Add(MonSuperPolygone); JsonFile.EcrisFile(); } Resultat.Background = new SolidColorBrush(MonSuperPolygone.ColorDefinie); Resultat.TextAlignment = TextAlignment.Center; Resultat.FontSize = 42; Resultat.Foreground = new SolidColorBrush(Color.FromRgb(255, 255, 255)); Resultat.Text = MonSuperPolygone.ToString(); } }