private void button1_Click_1(object sender, EventArgs e) { char[] cadenas = toolStripTextBox2.Text.ToCharArray(); string estadoActual = "q0"; foreach (char letra in cadenas) { PreEstadoGrafico preTransicion = new PreEstadoGrafico(); preTransicion.estadoInicio = estadoActual; preTransicion.letra = letra; try { estadoActual = TransicionGrafica[preTransicion]; } catch (KeyNotFoundException) { continue; } } if (estadosGraficos[estadoActual]) { toolStripLabel3.BackColor = Color.Green; toolStripLabel3.Text = "APROBADA"; } else { toolStripLabel3.BackColor = Color.Red; toolStripLabel3.Text = "REPROBADA"; } }
private void AlfabetoToolStripTextBox_TextChanged(object sender, EventArgs e) { char[] letras = AlfabetoToolStripTextBox.Text.ToCharArray(); Graphics g; Bitmap imagen = (Bitmap)tablero.Image.Clone(); g = Graphics.FromImage(imagen); Pen pen = new Pen(Color.Black, 2); pen.StartCap = LineCap.RoundAnchor; pen.EndCap = LineCap.ArrowAnchor; Point[] points = new Point[4]; foreach (var estado in estadosGraficos.ToArray()) { TransicionGrafica.Where(x => x.Key.estadoInicio == estado.Key); List <char> letrasEtiquetaParcial = new List <char>(); foreach (char letra in letras) { PreEstadoGrafico temp = new PreEstadoGrafico(); temp.estadoInicio = estado.Key; temp.letra = letra; try { if (TransicionGrafica[temp] == estado.Key) { letrasEtiquetaParcial.Add(temp.letra); } } catch (KeyNotFoundException) { letrasEtiquetaParcial.Add(temp.letra); } } if (letrasEtiquetaParcial.Count > 0) { points[0] = new Point(posicionesGraficas.FirstOrDefault(x => x.Value == estado.Key).Key.X * 100, posicionesGraficas.FirstOrDefault(x => x.Value == estado.Key).Key.Y * 100 + 25); points[3] = new Point(points[0].X + 50, points[0].Y); points[1] = new Point(points[0].X, points[0].Y + 50); points[2] = new Point(points[0].X + 50, points[0].Y + 50); g.DrawLines(pen, points); g.DrawString(String.Join(",", letrasEtiquetaParcial.ToArray()), new Font("Verdana", 12), Brushes.Black, points[0].X + 5, points[0].Y + 25); } } tablero.Image = imagen; g.Dispose(); }
private void tablero_MouseUp(object sender, MouseEventArgs e) { if (ponerEtiqueta) { ponerEtiqueta = false; } if (hacerLinea && e.Button == MouseButtons.Right) { ingresarAlfabeto ingreso = new ingresarAlfabeto(Alfabeto); ingreso.ShowDialog(); if (ingreso.DialogResult == DialogResult.OK) { Alfabeto = ingreso.alfabeto; ponerEtiqueta = true; int posicion = 0; letrasEtiqueta = ingreso.agregar.ToList(); foreach (char letra in ingreso.agregar) { try { PreEstadoGrafico preEstado = new PreEstadoGrafico(); preEstado.estadoInicio = posicionesGraficas[posicionInicialLinea]; preEstado.letra = letra; TransicionGrafica.Add(preEstado, posicionesGraficas[posicionActual]); } catch (Exception) { letrasEtiqueta.RemoveAt(posicion); } posicion++; } AlfabetoToolStripTextBox.Clear(); foreach (char letra in Alfabeto) { AlfabetoToolStripTextBox.Text += letra; } dibujarLinea(); } hacerLinea = false; } }