Sno, complicato è ciò che ci appare tale. La direzione che hai presupposto è una delle tante possibili.
Detta così vuole dire che non hai capito come funziona. In base al valore assunto dalla variabile di stato state viene eseguito il case n. Dentro ad ogni case puoi assegnare valori a variabili e quindi anche alla variabile state.
Si può fare in tanti modi anche senza switch case, c'è da vedere se poi ti sembra sempre complicato.
Su wokwi ho scritto uno sketch di esempio, vedi se va be e se lo comprendi. Salvatelo poiché non rimarrà allungo il link.
Ciao.