Introduction
Goal: dotare il
GAME OF LIFE DI CONWAY
di una interfaccia grafica di interazione con l'utente, per realizzare il
requisito R2.
Requirements
- Dotare il gioco Life di una pagina HTML come dispositivo di I/O.
- La pagina deve costituire un componente interno alla applicazione, seguendo l'architettura
riportata in IoJavalin.
- Il gestore del gioco sarà l’utente che ha aperto per primo (Owner) la pagina HTML collegata.
Solo la pagina dell’Owner avrà i pulsanti di comando START / STOP / CLEAN / EXIT
attivi.
- La pagina HTML deve essere aggiornata in modo automatico man mano che il gioco procede.
- Un utente non-owner che si collega mentre il gioco è in corso deve poter visualizzare correttamente lo
stato attuale della griglia.
- Il deployment del gioco deve avvenire mediante Docker.
Requirement analysis
Per le classi ed i test dell'architettura del gioco Life fare riferimento allo sprint 2
L'interfaccia di Input/Output con il browser è la seguente:
public interface IOutDev {
public void display(String msg); // For HMI
public void displayCell(IGrid grid, int x, int y);
public void close();
void displayGrid(IGrid grid);
}
Problem analysis
L'evoluzione del gioco è la distribuzione web del gioco, come richiesto dal committente, viene utilizzato a tal fine un server Javalin (leggero e facile da utilizzare) e la tecnologia websocket.
Test plans
Test mantenuti dallo sprint1:
- ICell: Verificare che una cella appena creata sia inizialmente in stato "morto".
Verificare inoltre che i metodi per cambiare lo stato (attivazione e disattivazione) modifichino correttamente
il valore interno della cella.
- IGrid: Verificare che la griglia venga istanziata con le dimensioni corrette (righe e
colonne) e che tutte le celle al suo interno nascano morte. Verificare la corretta assegnazione e lettura dello
stato delle celle tramite coordinate. Verificare il corretto funzionamento dell'algoritmo di conteggio
dei vicini vivi.
- LifeInterface: Verificare che l'applicazione delle Regole di Conway per il calcolo della
generazione successiva (
nextGeneration) produca i risultati attesi.
Verificare che l'operazione di reset riporti effettivamente tutta la mappa allo stato
inattivo.
Project
Testing
Deployment
La distrib. dell'applicazione avviene sotto forma di container Docker.
Passi:
- Creare immagine Docker:
docker build -t conway-web-gui:1.0 .
- Avviare il container:
docker run -p 8080:8080 --rm conway-web-gui:1.0
- Accedere all'indirizzo: http://localhost:8080.
Maintenance
By Luca Zanarini email: luca.zanarini2@studio.unibo.it,

GIT repo: https://github.com/LZanaaa/ISS26