private void button2_Click(object sender, EventArgs e) { NodeBateau.cas = 'b'; SearchTree g = new SearchTree(); NodeBateau N0 = new NodeBateau(100, 200); NodeBateau._xf = 200; NodeBateau._yf = 100; List <GenericNode> Lres = g.RechercheSolutionAEtoile(N0); if (Lres.Count == 0) { labelsolution.Text = "Pas de solution"; } else { labelsolution.Text = "Une solution a été trouvée"; } int i = 0; Pen penwhite = new Pen(Color.White); // d’autres couleurs sont disponibles Graphics g1 = pictureBox1.CreateGraphics(); foreach (GenericNode N in Lres) { listBox1.Items.Add(N); listBox1.Items.Add("G : " + N.GetGCost().ToString()); if (i < Lres.Count - 1) { NodeBateau NT = (NodeBateau)(N); int x1 = NT.Get_x(); int y1 = NT.Get_y(); NodeBateau NT2 = (NodeBateau)(Lres[i + 1]); int x2 = NT2.Get_x(); int y2 = NT2.Get_y(); g1.DrawLine(penwhite, new Point((int)x1, pictureBox1.Height - (int)y1), new Point((int)x2, pictureBox1.Height - (int)y2)); i++; } } labelcountopen.Text = "Nb noeuds des ouverts : " + g.CountInOpenList().ToString(); labelcountclosed.Text = "Nb noeuds des fermés : " + g.CountInClosedList().ToString(); g.GetSearchTree(treeView1); }
private void button1_Click(object sender, EventArgs e) { SearchTree g = new SearchTree(); NodeTaquin N0 = new NodeTaquin(textBox1.Text); List <GenericNode> Lres = g.RechercheSolutionAEtoile(N0); if (Lres.Count == 0) { labelsolution.Text = "Pas de solution"; } else { labelsolution.Text = "Une solution a été trouvée"; foreach (GenericNode N in Lres) { listBox1.Items.Add(N); } labelcountopen.Text = "Nb noeuds des ouverts : " + g.CountInOpenList().ToString(); labelcountclosed.Text = "Nb noeuds des fermés : " + g.CountInClosedList().ToString(); g.GetSearchTree(treeView1); } }
private void CasBButton_Click_1(object sender, EventArgs e) // Cas B { NodeBateau.cas = 'b'; pictureBox1.Refresh(); // Actualise la picturebox SearchTree g = new SearchTree(); NodeBateau N0 = new NodeBateau(100, 200); //Entre en entrée les coordonnées(x et y) du noeud initial du bateau pour le Cas B NodeBateau._xf = 200; // Entre en entrée les coordonnées en abcscisse du noeud final que le bateau doit atteindre pour le Cas B NodeBateau._yf = 100; // Entre en entrée les coordonnées en abcscisse du noeud que le bateau doit atteindre pour le Cas B //Intialisation du chronomètre Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); Thread.Sleep(10); List <GenericNode> Lres = g.RechercheSolutionAEtoile(N0); if (Lres.Count == 0) { labelsolution.Text = "Pas de solution"; } else { labelsolution.Text = "Une solution a été trouvée"; // Affichage du chronomètre stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); ChronoBox.Text = elapsedTime; int i = 0; Pen penwhite = new Pen(Color.White); ////Affichage du segment entre deux points Graphics g1 = pictureBox1.CreateGraphics(); PasBox.Text = NodeBateau.pas.ToString(); // Affichage du nombre de pas foreach (GenericNode N in Lres) { listBox1.Items.Add(N); if (i < Lres.Count - 1) { NodeBateau NT = (NodeBateau)(N); int x1 = NT.Get_x(); int y1 = NT.Get_y(); NodeBateau NT2 = (NodeBateau)(Lres[i + 1]); int x2 = NT2.Get_x(); int y2 = NT2.Get_y(); g1.DrawLine(penwhite, new Point((int)x1, pictureBox1.Height - (int)y1), new Point((int)x2, pictureBox1.Height - (int)y2)); i++; } } textTempsParcours.Text = Lres[Lres.Count - 1].GetGCost().ToString();// Affichage de G : le temps entre le nœud initial et le nœud final labelcountopen.Text = "Nb noeuds des ouverts : " + g.CountInOpenList().ToString(); labelcountclosed.Text = "Nb noeuds des fermés : " + g.CountInClosedList().ToString(); g.GetSearchTree(treeView1); } }