Devi realizzare una versione interattiva del Gioco della vita di John Conway.
Il gioco di svolge applicando ripetutamente delle semplici regole ad una matrice di cellule. Ogni cellula può essere viva o morta e può cambiare stato secondo le regole seguenti:
Ad ogni passo del gioco si contano i vicini vivi di ogni cellula e si applicano le regole.
N.B.: Il conteggio del numero di vicini vivi deve sempre basarsi sullo stato delle cellule prima dell’applicazione delle regole. In altre parole prima bisogna contare il numero di cellule vive adiacenti per ogni cellula, poi bisogna applicare le regole per determinare lo stato successivo di ogni cellula.
L’interfaccia grafica deve implementare le funzionalità seguenti:
+
e -
in alto)+
e -
a sinistra)STEP
)CLEAR
)RND
)La rappresentazione grafica delle cellule deve essere sempre centrata e della dimensione massima possibile (con un margine minimo configurabile tramite una costante).
Ogni cellula viene rappresentata tramite un cerchio, all’interno del cerchio è indicato il numero di vicini vivi. Le cellule vive sono rappresentate in verde, quelle morte in rosso.
Inoltre ogni cellula ha un bordo di 2 pixel il cui colore dipende dalla stato che la cellula assumerà al prossimo passo di gioco. Le cellule destinate a morire (o a restare morte) hanno il bordo color rosso, quelle destinate a diventare vive (o a restare vive) hanno il bordo verde:
stato attuale -> | stato successivo | |
---|---|---|
![]() |
viva | viva |
![]() |
viva | morta |
![]() |
morta | morta |
![]() |
morta | viva |