Some extra information regarding the handling of the finite states; A special state is the initial “START” state.
As you can imagine, during the start of the board, the inputs are in a certain state or better they are undefined. At the beginning of the main loop, all inputs are read and can be processed in the START state. Depending on the value of the inputs you can make a transit to the right state. It is recommended to go directly from the START state to a finite machine state depending on the initial state from the inputs.