Simulazione dinamica delle cellule
Agenda
1. Simulazione dinamica delle cellule (Game of Life)
Si vuole sviluppare un algoritmo per la simulazione di dinamica di ‘cellule’. Si consideri una scacchiera in cui ogni casella rappresenta una cellula, che può essere viva o morta. Ogni cellula ha, in generale, otto cellule vicine (a meno che la cellula non si trovi sul bordo della scacchiera). L’algoritmo usa un array 2D nxn, con n=45,
per simulare la scacchiera. L’algoritmo esamina n volte la scacchiera. Durante ogni passo aggiorna lo stato di tutte le cellule sulla scacchiera nel seguente modo: se una cellula ha esattamente tre cellule vicine vive allora la cellula deve essere posta nello stato “viva”; se una cellula ha 1,2 o 4 cellule vicine vive allora la cellula permane
nello stato in cui si trova; se una cellula ha 5 o più cellule vicine vive allora la cellula deve essere posta nello stato “morta” (si noti che questa regola consente a una cellula morta di diventare viva). Fare attenzione al fatto che la scacchiera deve essere aggiornata solo alla fine di ogni passo: ciò significa che l’algoritmo deve usare un
array per memorizzare la scacchiera attuale e un array per memorizzare la scacchiera modificata. L’algoritmo visualizza tutto l’array 2D al temine del secondo, terzo, quarto, sesto, ottavo, decimo, 20-simo, 30-simo e 45-simo passo. Ogni cellula viva è visualizzata con un asterisco; ogni cellula morta con uno spazio. Usare le tre seguenti
configurazioni iniziali (per i tre test): solo 7 cellule centrali della riga centrale sono vive; solo 7 cellule centrali della colonna centrale sono vive; solo le 4 cellule in posizione 22,22 22,23 23,22 23,23 sono vive.
2. Agenda
Si vuole simulare la gestione di un’agenda elettronica contenente appuntamenti suddivisi in tre categorie: lavoro, casa, sport. L’agenda è suddivisa in giorni, per 12 mesi complessivi. Ogni giorno è identificato
da 24 ore. Dato un mese, un giorno e un’ora permettere all’utente di:
• Inserire un appuntamento
• Date due date visualizzare l’ammontare delle ore dedicate ad una data
categoria.
• Descrivere le statistiche delle ore dedicate ad ogni categoria.
Implementare l’algoritmo per la simulazione dell’agenda ed effettuare almeno un test per ognuna delle opzioni dell’utente.