|
Introduzione
La dama è un gioco che prevede la contrapposizione di due avversari i cui obiettivi sono in conflitto: ambedue, infatti, devono cercare la sequenza di mosse migliore da eseguire, che conduca ad una situazione di vantaggio per sè e di conseguenza alla vincita della partita. Il vantaggio di un giocatore indica la perdita dell'avversario; infatti le mosse migliori che vengono scelte da un giocatore saranno quelle che conducono a situazioni di svantaggio per l'altro giocatore. In base a quanto detto, lo scopo di ognuno dei due giocatori è di vincere la partita contro l'avversario, o al massimo nel caso peggiore, di pareggiare. Il pareggio si verifica nel caso in cui si arrivi ad una situazione di stallo in cui nessuno dei due giocatori ha vinto, ma giocando ambedue in modo ottimo, nessuno ha la possibilità di mettersi in una condizione vantaggiosa e di vincere. L'ambiente in cui si esegue tale gioco è accessibile [1], dato che ogni giocatore conosce esattamente quali mosse sono possibili per l'avversario e pertanto può essere definito ad informazione completa. Inoltre è deterministico dato che non ci sono fattori di chance, come potrebbe essere il lancio dei dadi, ma l'evolversi del gioco è determinato esclusivamente dalle azioni che vengono eseguite dagli agenti. Si è scelto di realizzare la versione italiana del gioco principalmente per due motivi: in primo luogo è molto conosciuta, quindi non si è resa necessaria una fase iniziale di studio del gioco e delle sue tattiche; inoltre è ampiamente documentata infatti si trovano molti siti su questo argomento. Nel sito ufficiale della Federazione Italiana Dama è possibile trovare tutte le regole di tale gioco e anche suggerimenti su alcune strategie da seguire per condurre una buona partita con buone probabilità di vittoria. La dama è stata implementata con un'Applet realizzata con Java 1.5, a partire da un codice già esistente scaricato dalla rete [3]. Tale codice è stato utilizzato come base di partenza sopratutto per la parte grafica. Il motore del gioco è stato completamente cambiato in modo da rispettare tutte le regole fissate e realizzare strategie efficienti di ricerca della sequenza di mosse migliori da eseguire. Sono state realizzate tre possibili modalità di gioco: computer contro computer, umano contro computer e umano contro umano. Nelle modalità nelle quali compare il computer, è possibile scegliere i livelli di difficoltà del gioco selezionando il tipo di valutazione che viene utilizzata per ritornare la mossa migliore da eseguire e il livello di profondità utilizzato nella ricerca delle soluzioni. Nel Capitolo I vi è una breve introduzione del gioco della dama italiana con tutte le regole che devono essere rispettate e le convenzioni utilizzate per la successiva analisi. Inoltre viene descritto il funzionamento del gioco implementato. Nel Capitolo II si può trovare un'analisi delle strategie utilizzate per implementare la parte di intelligenza artificiale del gioco. Tale è stata realizzata con lo scopo di ottenere un agente che riesca a trovare senza lunghi tempi di attesa, la mossa più vantaggiosa da eseguire, che gli permetta di vincere la partita. Nel Capitolo III viene discussa la reale implementazione del gioco analizzando le classi java che compongono il progetto e la logica di base. Sono spiegate anche le differenze con il codice scaricato dalla rete, le innovazioni che sono state apportate e i pezzi che sono stati solo in parte modificati. In particolare, nelle Sezioni 3.5 e 3.6 vengono discusse le realizzazioni rispettivamente del modulo umano e di quello di intelligenza artificiale, mentre in Sezione 3.7 vi è un'analisi delle funzioni di valutazione studiate. I valori e le considerazioni sui test eseguiti per valutare l'efficienza del gioco sono trattati nel Capitolo IV . In Sezione 4.1 viene discussa la bontà di ogni funzione di valutazione, mentre in Sezione 4.2 si trova l'analisi del tempo medio richiesto per scegliere la mossa migliore. Nel Capitolo V sono riportate le conclusioni che si possono trarre sull'implementazione eseguita e sulle difficoltà incontrate. Infine, nel Capitolo VI viene presentato il consuntivo delle ore di lavoro.
|