Lo scopo del progetto consiste nella realizzazione di un modello di intelligenza artificiale in grado di sfidare un altro agente intelligente -artificiale o umano- nel gioco di Hive
In questa repository GitHub è possibile trovare due root directory: hive-engine e haive-report.
In hive-engine si trova il codice sorgente del progetto, scritto totalmente in Rust ed una piccola parte in Python per automatizzare alcuni processi.
Il progetto è composto dai seguenti moduli:
battler: Modulo che permette di far sfidare il modello (haive) contro un altro modello arbitrario che implementa un server UHP (dà anche la possibilità di far sfidare tra loro due agenti UHP).data_generation: Modulo per la generazione dei dati, fa sfidare due agenti random (che giocano eseguendo mosse casuali) e salva l'intera partita ed i risultati; usato per il training della rete neurale.dataset: Directory con i file generati per training e validation.engine: Modulo per avviare il server UHP.hive_library: Modulo centrale del progetto, è presente tutta la logica di gioco e del modello. Sono presenti la rappresentazione della board e dei pezzi per Minimax e NNUE, la rappresentazione dei player, il codice per eseguire partite e per implementare il server ed il client UHP.training: Modulo per allenare la rete neurale.
Questa sezione ti guiderà per configurare, compilare ed eseguire i vari moduli del progetto.
- Rust Toolchain: L'ultima versione di Rust e Cargo installati sulla macchina.
- Clona la repository
git clone https://github.com/andrea-sq/hAIve.git cd hAIve
-
Entra nel crate
hive-enginecd hive-engine -
Compila il progetto Esegui la build dell'engine, il core del progetto, nella subdirectory
hive-enginecon tutte le librerire ed eseguibili associati.cargo build --release --bin engine
-
Esegui Se la compilazione è andata a buon fine,
hive-engine/target/releaseconterrà il target eseguibileengine:cd target/release ./engine
-
Entra nel crate
hive-enginecd hive-engine -
Compila il progetto Esegui il build del modulo
battlernella subdirectoryhive-enginecon tutte le librerire ed eseguibili associati.cargo build --release --bin battler
-
Esegui Se la compilazione è andata a buon fine,
hive-engine/target/releaseconterrà il target eseguibilebattler:cd target/release ./battler
-
Entra nel crate
hive-enginecd hive-engine -
Compila il progetto Esegui il build del modulo
data_generationnella subdirectoryhive-enginecon tutte le librerire ed eseguibili associati.cargo build --release --bin data_generation
-
Esegui Se la compilazione è andata a buon fine,
hive-engine/target/releaseconterrà il target eseguibiledata_generation:cd target/release ./data-generation
-
Scaricare il MzingaViewer
-
Aprire MzingaViewer e da Viewer -> Viewer Options -> Engine cambiare il percorso di UHP engine a quello dell'engine compilato e premere OK
-
Da File -> New impostare uno dei due giocatori come engine e premero OK