Progetto di un programma per la simulazione del gioco del Nim

 

I seguenti schemi illustrano il risultato dell'analisi funzionale, dell'individuazione delle componenti e della definizione preliminare delle interazioni fra componenti.
L'organizzazione si ispira al modello Model-View-Controller (MVC); in una prima fase si fa riferimento ad uno schema minimale in cui View ha una funzione passiva di semplice visualizzazione grafica.
In una seconda fase View supporta le interazioni con l'utente, attraverso la gestione degli eventi determinati dalle azioni sul mouse, e integra le funzionalità del Controller realizzando l'interfaccia NimStrategy.

Schema MVC di riferimento preliminare alla prima fase:

 

 

Prima fase: revisione e analisi della relazione Model-View in termini di paradigma Observer/Observable (applicazione del design pattern "observer"). Diagramma dei messaggi:

 

 

Analisi della struttura logica: modello (Nim) e controllo (NimGame, NimPlayer, NimStrategy); il comportamento di ciascun giocatore è determinato da una strategia, in astratto definita solo da un porotocollo (applicazione del design pattern "strategy"). Diagramma dei messaggi:

 

 

Analisi del modulo per gestire visualizzazione e interazione: UserStrategy è strettamente accoppiato a NimView.

 

 

Seconda fase. Analisi delle relazioni fra View e Controller: disaccoppiamento di logica e interfaccia utente sia per la visualizzazione passiva sia per l'interazione attiva. Diagramma dei messaggi: