Ejemplo n.º 1
0
        private void btnStep_Click(object sender, EventArgs e)
        {
            try
            {
                if (maquinaDeTuring == null)
                {
                    MessageBox.Show("Por favor, genere una maquina de turing.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                maquinaDeTuring.CambiarEstadoAEjecutandose();

                btnEditar.Enabled    = false;
                btnCorrer.Enabled    = true;
                btnSiguiente.Enabled = true;
                btnPausar.Enabled    = false;
                btnDetener.Enabled   = true;

                if (maquinaDeTuring.HaFinalizado())
                {
                    Finalizo(maquinaDeTuring.EstadoActual);
                    txtEstadoFinal.Text = maquinaDeTuring.EstadoActual;
                    return;
                }

                maquinaDeTuring = maquinaDeTuring.Step();
                rtbSalida.Text  = maquinaDeTuring.Cabezal.ObtenerCintaProcesada();
                ResaltarCaracterEntrada();
                ResaltarFilaTablaDeTransiciones();
                IncrementarPasos(maquinaDeTuring.Pasos.ToString());
            }
            catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocurrió un problema: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }