Exemplo n.º 1
0
        private void Inicializa()
        {
            Valida.ArgumentoNoNulo(_estados, "estados");
            Valida.ArgumentoNoNulo(_transiciones, "transiciones");
            Valida.ArgumentoNoNulo(_estadoInicial, "estadoInicial");
            int maxIndiceEstados      = _estados.Count;
            int maxIndiceTransiciones = _transiciones.Count;

            _matrizTransiciones = new Nodo[maxIndiceEstados, maxIndiceTransiciones];
            // Se almacenan por estado.
            _accionesEntrada = new List <Accion> [maxIndiceEstados];
            // Se almacenan por estado.
            _accionesSalida = new List <Accion> [maxIndiceEstados];
            // Inicializar estados de transicion a no definido.
            for (int i = 0; i < maxIndiceEstados; i++)
            {
                for (int j = 0; j < maxIndiceTransiciones; j++)
                {
                    _matrizTransiciones[i, j] = new Nodo();
                }
            }
            // Estado inicial definido?.
            IndiceEstado(_estadoInicial);
            _indiceEstadoActual = _estados.IndexOf(_estadoInicial);
        }