E' un automa a stati finiti, ci sono vari modi per implementarlo, il più semplice è incrementare una variabile ad ogni tocco e in base al suo valore setti gli output, per questa cosa va bene una switch().
Va da se che non appena la variabile arriva al valore massimo ammesso deve essere settata a quello minimo, in modo da poter ripetere il ciclo.