Пример #1
0
        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";
            }
        }
Пример #2
0
        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();
        }
Пример #3
0
 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;
     }
 }