Paso 2: Máquina de estado finito de segunda
Una vez las obras de patrón LED, necesitamos ser capaces de obtener entrada del usuario para ver si son correctas o incorrectas. En Simon, cada parte del patrón debe coincidir con el fin de ganar el juego. En este FSM tuvimos dos Estados: espera y verificación de entrada.
Estado de entrada de control:
En este estado, tuvimos que crear un módulo para el mapeo de los botones a los LEDs respectivos allí. Utilizamos los botones en vez de interruptores para imitar el tipo de juego del juego verdadero de Simon. También tuvimos otro módulo para la comparación entre la entrada del usuario y el patrón real de los LEDs. Si el usuario era correcto, el juego se transferirán al primer FSM y se generaría un nuevo patrón. Si no coincide con la entrada, entonces iría al juego sobre el estado en el tercer FSM. Una vez que la comprobación de entrada estado sería acabado (la entrada del jugador es correcta o incorrecta) transferirán al estado de espera.
Esperar el estado:
De manera similar al primer estado de espera, este estado actuaría como un asimiento para el programa. Cuando el contador máximo sería alta iría al estado de entrada de control, o bien quedaría al FSM en el estado de espera.