Ebbene signori, siccome nella mia vita ho abbondanza di tempo libero (spero si sia notata l’ironia delle mie parole), ho deciso di unire la mia passione per il forza 4 (famoso gioco da tavola) ed i miei recenti studi nel campo delle intelligenze artificiali per creare un applicazione dotata di AI per il succitato gioco!
L’obiettivo finale sarebbe quello di creare un’applicazione per iPhone ed iPod Touch ma siccome ho deciso di procedere per gradi la fase di studio dell’AI verrà fatta “codando” in Java.
Come cominciare quindi? Si inizia sviluppando l’ambiente in cui andrà ad operare la nostra intelligenza artificiale… cioè il “campo” di gioco. Scriveremo quindi la classe Java “Board” che conterrà come variabile una matrice di interi di 6 righe per 7 colonne (la rappresentazione del campo di gioco ufficiale) con i metodi relativi alla sua gestione:
- Costruttore
- Metodo di inizializzazione della matrice
- mossa (inserimento di un gettone da parte di un giocatore)
- controllo sul fatto che una mossa sia possibile
- controllo se un giocatore ha vinto
- controllo sul fatto che il gioco sia finito o no (vincita di un giocatore o Board piena)
- metodo di “stampa” della board
- getters e setters
Nella matrice del campo di gioco il valore 0 starà a significare casella libera, il valore 1 gettone del giocatore 1 ed il valore 2 gettone del giocatore 2. Nel metodo di controllo della vincita di un giocatore ho cercato di strutturare l’algoritmo in modo che esegua il minor numero possibile di calcoli, anche a costo di una aumento della complessità del codice, poiché questo sarà utilizzato tantissimo dall’AI quindi anche un piccolo risparmio in termini di calcolo sarà sicuramente apprezzato dal processore!
Il codice sorgente della classe Board è liberamente scaricabile da qua (licenza GPL v2): Board.java
Per testare il funzionamento della classe “Board” è stata scritta una classe “Test” che inplementa una versione rudimentale del gioco (via console) priva di intelligenza artificiale (essere umano vs. essere umano).
Il codice sorgente della classe Test è liberamente scaricabile da qua (licenza GPL v2): Test.java
Per il seguito della progettazione e dello sviluppo del gioco di Forza 4 vi invito a seguire il Blog nei prossimi giorni!
P.S.: Si ringrazia il Dott. (in Ingegneria Informatica) Marco Casiero per la collaborazione al progetto.

Io, da tempo immemore (praticamente dal giorno dell’acquisto del mio primo Mac), uso QuickSilver come launcher per le applicazioni su OS X… ai tempi di Tiger questa scelta era decisamente ragionevole in quanto Spotlight di default non evidenziava quello che riteneva il miglior risultato della ricerca obbligando l’utente a scendere con le frecce direzionali prima di poter premere invio ed aprire l’applicazione cercata, al contrario QuickSilver dopo la pressione delle prime iniziali del nome dell’applicazione consente di aprirla istantaneamente premendo invio (risparmiando così parecchio tempo all’utente). Adesso con Leopard sono però cambiate le cose in quanto Spotlight evidenzia di default il miglior risultato della ricerca permettendo di aprirlo subito tramite invio… proprio come QuickSilver!
Nehalem (il cui nome commerciale sarà “Core i7″) è il nome in codice della nuova architettura che Intel introdurrà nella sua prossima generazione di processori… ed è un po’ una piccola rivoluzione! 
Commenti recenti