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.
novembre 22nd, 2008 at 18:47
Bravo bravo..
Osservo attento, sono curioso. Voglio vedere se te la cavi in Java
novembre 22nd, 2008 at 19:35
Ho fatto l’intera tesi di laurea un Java… credo di conoscerlo passabilmente bene!
Lo scelto per la fase di testing perché, in caso di errore o malfunzionamenti, non dovessi includere nella ricerca dei possibili errori anche quelii dovuti alla scarsa conoscenza del linguaggio!
Fa piacere avere pubblico!