LAUREANDO:Bruno TAGLIAPIETRA
PROGETTAZIONE E REALIZZAZIONE DI UNA APPLICAZIONE PER IL GIOCO DEGLI "SCACCHI 3D"
Tesi di Laurea Specialistica in Ingegneria Informatica
RELATORE:Chiar.mo Prof.Maur iz io FERMEGLIA
U n i v e r s i t à d e g l i S t u d i d i Tr i e s t e
Fa c o l t à d i I n g e g n e r i a
A n n o A c c a d e m i c o 2 0 0 8 / 0 9
04/13/2023
1
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Obiettivo della Tesi
Sviluppo di una piattaforma per il gioco di una variante in 3D dei famosi “scacchi”
Key Features: Umano vs Umano Umano vs Computer Computer vs Computer
04/13/2023
2
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Obiettivi Intermedi
Fasi dello sviluppo Analisi gioco Analisi architetturale Raccolta requisiti componenti progetto Valutazione tecnologie disponibili Approfondimento tecnologie impiegate Progettazione architetturale Progettazione componenti fondamentali Realizzazione complessiva Test, migliorie, riprogettazioni
04/13/2023
3
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Motivazioni
Perché ‘un videogioco’ Prodotto di tutto rispetto ed in grande ascesa in campo
economico, sociale, artistico. Bacino di utenza potenzialmente largo (tutte le fasce
d’età).
Perché una variante 3D degli “Scacchi” Interessante dal punto di vista AI (tecniche specifiche). Scacchi classici già molto inflazionati.
Perché “Raumschach” Nessuna implementazione fedele della variante presa in
esame, “Raumschach”. Gioco già collaudato, avente ricca e nobile storia di pratica.
04/13/2023
4
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi – Cenni storici
Scacchi – Varianti 3D
Le più antiche risalgono a fine ‘800
“Raumschach” Inventati da Ferdinand Maack, inizialmente 8x8x8 Pubblicati nel 1907 in versione 5x5x5 Nel 1919 fondato un club ad Amburgo Giocati, prevalentemente in Germania, fino all’inizio
della seconda guerra mondiale.
04/13/2023
5
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Regole Scacchiera cubica, 5x5x5 Vittoria per scacco matto:
Non è possibile fare alcuna mossa e il prioprio Re è sotto scacco.
Patta se: 50 mosse consecutive senza prese o mosse di Pedone Stallo (non è possibile fare alcuna mossa ma il Re non è sotto
scacco) Notazione:
La casella in basso a sinistra vicina al giocatore bianco è la Aa1.
Piani: lettere maiuscole; righe: lettere minuscole; colonne: numeri.
04/13/2023
6
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Aa1
Analisi - Regole
Disposizione iniziale
04/13/2023
7
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Pedone
04/13/2023
8
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Cavallo
04/13/2023
9
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Unicorno
04/13/2023
10
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Alfiere
04/13/2023
11
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Torre
04/13/2023
12
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Regina
04/13/2023
13
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Regole
Re
04/13/2023
14
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Analisi - Requisiti
Requisiti individuati
Scacchiera cubica, 5x5x5, conforme al regolamento Visualizzazione tridimensionale Selezione e spostamento pezzi tramite mouse Possibilità di giocare con avversario umano Possibilità di giocare con avversario computerizzato
Difficoltà regolabile Portabilità
04/13/2023
15
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Tecnologie
XNA 3.1 Inseme di tool ambiente .NET Scopo: sviluppo di videogame Caratteristiche:
Portabilità: PC, Xbox, Zune Mono.XNA (incompleto): Linux, MacOS
Vantaggi In quanto Game Framework evita di dover riscrivere le
infrastrutture adatte al game development Vantaggi rispetto altri game framework
Maggior confidenza con la tecnologia su cui si basa
04/13/2023
16
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione
Macro dicotomia
Motore Veloce Efficiente Regolabile
Interfaccia Tridimensionale Gradevole alla vista User friendly
04/13/2023
17
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione
Pattern architetturale di riferimento:Model – View – Controller
Motore Model + Controller
Interfaccia View
04/13/2023
18
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione - Motore
Esso deve essere in grado di
Esprimere una valutazione quantitativa sulla posizione
Per un certo numero di “livelli”, sia esso n: Generare tutte le mosse possibili Valutare tutte le posizioni Per ciascuna posizione, generare tutte le mosse
possibili Fermarsi quando ha raggiunto il tempo limite
04/13/2023
19
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione - Motore
Tre macro-problemi principali:
Rappresentazione della scacchiera.
Tecniche di ricerca delle mosse.(Ricerca in alberi)
Valutazione di una posizione.
04/13/2023
20
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione - Motore
Rappresentazione scacchiera - mailbox:
04/13/2023
21
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
for (j = 0; j < offsets[piece[pos_iniz]]; ++j) //n da 0 a 124{ for (n = pos_iniz;;) { n = mailbox[addresser[n] + offset[piece[pos_iniz]][j]]; if (n == -1) break; if (color[n] != EMPTY) { //se la casella non è vuota... if (color[n] == not_my_side) genera_mossa(...); //e non proseguo break; } genera_mossa(...); If (!slide[piece[i]]) break; }}
Progettazione - Motore
Tecniche di ricerca:
Alfa-beta pruning Problema: è depth first. Difficile valutare avendo un tempo limitato
Soluzione: Iterative deepening
04/13/2023
22
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione - Motore
Iterative Deepening:
04/13/2023
23
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione - Motore
Alpha-beta pruning:
function alphabeta(node, depth, α, β) (* β rappresenta la scelta migliore del giocatore precedente *)
if node is a terminal node or depth = 0 return the heuristic value of node foreach child of node
α := max(α, -alphabeta(child, depth-1, -β, -α)) (* per simmetria, -β diventa α *) if β≤α break (* Beta cut-off *)
return α (* chiamata originaria *) alphabeta(origine, depth, -infinito, +infinito)
04/13/2023
24
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
Progettazione - Motore25
Valutazione posizione: Punteggi Riportati i punteggi degli scacchi classici, tenendo conto
della mobilità relativa
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
04/13/2023
Progettazione – Interfaccia – Screen Flow26
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
04/13/2023
Conclusioni27
Obiettivi intermedi raggiunti Analisi gioco Analisi architetturale Raccolta requisiti componenti progetto Valutazione tecnologie disponibili Approfondimento tecnologie impiegate Progettazione architetturale Progettazione componenti fondamentali Realizzazione complessiva Test, migliorie, riprogettazioni
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
04/13/2023
Conclusioni28
Obiettivi intermedi raggiunti Analisi gioco Analisi architetturale Raccolta requisiti componenti progetto Valutazione tecnologie disponibili Approfondimento tecnologie impiegate Progettazione architetturale Progettazione componenti fondamentali Realizzazione complessiva Test, migliorie, riprogettazioni
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
04/13/2023
Conclusioni29
Obiettivi intermedi in corsoRealizzazione complessiva
Motore Interfaccia
Umano vs. ComputerLoading, SavingNetwork PlayingUser Friendliness
Test, migliorie, riprogettazioni
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
04/13/2023
Demo30
Università degli Studi di Trieste – Prof. Maurizio FERMEGLIA – Bruno TAGLIAPIETRA
04/13/2023
DEMO
Top Related