R1 Il gioco Life deve disporre di una pagina HTML come dispositivo di I/O R2 La pagina deve costituire un componente esterno all'applicazione con un'architettura IoJavalin esterna all'applicazione R3 Il gestore del gioco sarà l'utente che ha aperto per primo una pagina HTML collegata al gioco: solo la pagina dell'owner avrà pulsanti di comando START/STOP/CLEAN/EXIT attivi R4 La pagina HTML deve essere aggiornata in modo automatico man mano che il gioco procede R5 Un utente non owner che si collega mentre il gioco è in corso dovrebbe vedere lo stato attuale della griglia in modo corretto R6 Opzionalmente: la pagina HTML deve indicare se il gioco continua anche nel caso di griglia vuota o di configurazione stabile R7 Il deployment del gioco deve avvenire mediante Docker
L'interfaccia IOutDev per la visualizzazione dello stato di una Cell e/o di tutta la Grid è definita come segue:
public interface IOutDev {
void display(String msg); //For HMI
void displayCell(Cell cell, Grid grid);
void displayGrid(Grid grid);
void close();
}
Dall'analisi dei requisiti emergono i seguenti punti chiave:
L'architettura logica del sistema si presenta in questo modo: