Il gioco della vita Federica Dispenza matr.993535 Carmela Pecoraro matr.995845 Il papà: John Conway J.C matematico all’università di Cambridge sviluppa il “Gioco della vita” (che tanto gioco non è) alla fine degli anni ’60. Life fa la sua prima apparizione nell’ed. di ottobre 1970 su “Scientific American” nella rubrica “Giochi matematici”. Dimostrare che comportamenti simili alla vita possono emergere da regole semplici. LIFE: idee di base Partendo da una semplice configurazione di cellule si osserva come queste ultime Nascono Muoiono Sopravvivono LIFE: le regole (I) 3 requisiti di base: a) No configurazione iniziale per cui la popolazione possa crescere senza limiti b) Configurazione iniziale che sembri portare ad una crescita senza limiti c) Configurazione iniziale deve portare al cambiamento e concludersi con la morte, una configurazione stabile, un ciclo. LIFE: le regole (II) Topologiche: Il mondo è una griglia di celle quadrate Una cellula occupa un sola cella I suoi vicini sono le 8 caselle adiacenti Le cellule presenti sul bordo hanno comunque 8 vicini LIFE: le regole (III) Se una cellula ha più di 3 vicini muore Se una cellula ha meno di 2 vicini muore Una casella vuota genera una cellula se ha esattamente 3 vicini In ogni altro caso, nulla cambia Nascite e morti avvengono nello stesso istante Esempi Questo è un GLIDER, il più piccolo organismo semovente che può essere rappresentato all’interno del gioco Beehive Blinker Cosa è stato fatto in c++ Costruire la struttura del gioco: griglia cellule vive- cellule morte Costruire una funzione che contasse i vicini di ogni singola cella Costruire una funzione che permettesse di muoversi di generazione in generazione Sommavicini-Contavicini Il “Toro”: ovvero come rendere la funzione di valutazione il più semplice possibile. La funzione di valutazione: indicare ad ogni cella quali sono i suoi vicini e sommare i numeri che contiene. Cambiogenerazione Funzione che implementa le regole del gioco MAIN Carica i dati facendo scegliere all’utente se caricarli da file o random Chiede all’utente di immettere il numero di generazioni che vuole vedere Implementa cambiogenerazione Warning! Il programma funziona, ed ha superato un bel po’ di test… almeno fino a 10 generazioni per matrici 6x6! Più in là di così non ci siamo spinte