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); }