Tris su Arduino

In questo progetto, ho implementato il gioco del Tris sul microcontrollore Arduino Uno.

Per rendere il gioco molto compatto, ho usato il display SSD1306 OLED da 1 pollice e due bottoni per permettere al giocatore di selezionare la casella in cui posizionare il proprio simbolo X.

Ho aggiunto anche un buzzer per emettere dei brevi suoni di feedback quando il giocatore preme i bottoni e quando i simboli X e O vengono posizionati sullo schermo.

Il collegamenti del display sono: GND, VVC a 5V, SCL a A5, SDA a A4; i collegamenti dei bottoni sono a D10 e D11; il buzzer è collegato a GND e D12.

Una parte molto interessante dello sviluppo del codice è stato creare la funzione readButton per contare quante volte il giocatore preme i bottoni sinistro (per indicare la riga) e destro (per indicare la colonna).

Dopo un secondo dall’ultima pressione, il codice considera concluso l’inserimento e traduce le pressioni dei bottoni nelle coordinare riga/colonna in cui posizionare il simbolo X del giocatore.

Anche in questa implementazione, come già fatto per quelle in Python e in BASIC, la funzione bestMove identifica la miglior mossa per il computer per vincere (completando una fila di tre simboli uguali) oppure bloccare la vincita del giocatore umano.