ConwayLife Sprint2

Introduction

Goal: dotare il GAME OF LIFE DI CONWAY di una interfaccia grafica di interazione con l'utente, per realizzare il requisito R2 dello Sprint1.

La logica del gioco è già stata analizzata nello Sprint1. Utiliziamo quindi il risultato ottenuto, che costituisce un sottosistema funzionante, come punto di partenza per questo nuovo lavoro (deployed in un file conway26Java-1.0.jar).

Requirements

  1. (Dallo Sprint1) L’utente umano deve poter:
    • specificare la configurazione iniziale della griglia del gioco
    • vedere l’evoluzione del gioco in forma opportuna (si veda Problema della vista del gioco)
    • fermare e far ripartire l’evoluzione del gioco
    • pulire (a gioco fermo) la configurazione della griglia del gioco
  2. La griglia di gioco deve essere visualizzata in una finestra Swing con cui l'utente può interagire

Requirement analysis

L'obiettivo di questo Sprint è andare ad estendere il sistema realizzato in precedenza con un nuovo dispositivo di I/O.
Per come era stato pensato il sistema questo è assolutamente possibile, senza dover andare a modificare la logica dell'applicazione: infatti era previsto un contratto ( IOutDev ) pensato per fare in modo che sia il dispositivo a dipendere dall'applicazione e non viceversa (principio di inversione delle dipendenze).
Swing è una delle opzioni per introdurre una visualizzazione di tipo grafico all'interno del gioco.

Problem analysis

A differenza della console, la GUI genera degli eventi: click sulle celle per cambiarne lo stato e sui pulsanti per iniziare e fermare il gioco. Iniettando il controller nella GUI è possibile delegare le azioni dell'utente ai metodi di GameController.
La GUI deve reagire ai cambiamenti del modello, poiché il gioco evolve da solo in un thread separato. Il metodo displayGrid() agisce come punto di contatto tra logica e rappresentazione: ogni volta che viene invocato dal controller la GUI deve ridisegnare la griglia.

Test plans

Project

Testing

Deployment

Maintenance



By Arianna Buffoni email: arianna.buffoni@studio.unibo.it, foto GIT repo: https://github.com/ariannabuffoni/IngegneriaSistemiSoftware2026.git