🦠 Conway’s Game of Life
L’automa cellulare più celebre della matematica ricreativa
← Torna a Virtual Desktop Site
Descrizione
Conway’s Game of Life è una simulazione dell’automa cellulare inventato dal matematico britannico John Horton Conway nel 1970. Non è un “gioco” nel senso tradizionale: è un sistema dinamico che evolve secondo regole semplici, generando comportamenti complessi e imprevedibili.
Le Quattro Regole
Il Game of Life si svolge su una griglia infinita di celle quadrate, ciascuna viva (nera) o morta (bianca). Ad ogni generazione, lo stato delle celle cambia secondo:
1. 🪦 Morte per Isolamento
Una cella viva con meno di 2 vicini vivi muore (solitudine).
2. 💚 Sopravvivenza
Una cella viva con 2 o 3 vicini vivi sopravvive alla generazione successiva.
3. 💀 Morte per Sovrappopolazione
Una cella viva con più di 3 vicini vivi muore (sovraffollamento).
4. 🐣 Nascita
Una cella morta con esattamente 3 vicini vivi diventa viva (riproduzione).
Nota: “Vicini” include le 8 celle adiacenti (diagonali incluse).
Caratteristiche dell’Applicazione
Controlli Interattivi
- Play/Pause: avvia o ferma la simulazione
- Step: avanza di una generazione alla volta
- Clear: pulisce la griglia
- Random: genera pattern casuale
- Speed slider: regola velocità simulazione (1-20 FPS)
- Grid size: dimensioni griglia personalizzabili
Pattern Precaricati
L’app include pattern classici:
Still Lifes (Configurazioni Statiche)
- Block: quadrato 2×2, configurazione più semplice
- Beehive: esagono stabile
- Loaf: forma a “pagnotta”
- Boat: piccola barca
Oscillators (Configurazioni Periodiche)
- Blinker: periodo 2, più semplice oscillatore
- Toad: periodo 2, configurazione a rospo
- Beacon: periodo 2, due blocchi che oscillano
- Pulsar: periodo 3, grande e simmetrico
Spaceships (Navicelle Mobili)
- Glider: si muove diagonalmente, scoperto per primo
- Lightweight Spaceship (LWSS): si muove orizzontalmente
- Middleweight Spaceship (MWSS): variante più grande
- Heavyweight Spaceship (HWSS): la più grande del gruppo
Modalità di Disegno
- Click: attiva/disattiva singola cella
- Drag: disegna linee continue
- Pattern stamp: inserisci pattern precaricati con un click
Implementazione Tecnica
File Principali
core/js/gameoflife.js: logica automa cellulare e renderingcore/styles/gameoflife.css: stili interfacciaindex.html: finestra nel desktop virtuale
Tecnologie
- Canvas API: rendering griglia e celle
- Typed Arrays (Uint8Array): ottimizzazione memoria per grandi griglie
- Double buffering: due griglie (current/next) per aggiornamenti atomici
- RequestAnimationFrame: loop di simulazione fluido
Algoritmo di Evoluzione
function evolveGeneration() {
// Per ogni cella nella griglia
for (let y = 0; y < rows; y++) {
for (let x = 0; x < cols; x++) {
const neighbors = countNeighbors(x, y);
const isAlive = grid[y][x] === 1;
// Applica le 4 regole
if (isAlive && (neighbors < 2 || neighbors > 3)) {
nextGrid[y][x] = 0; // Morte
} else if (!isAlive && neighbors === 3) {
nextGrid[y][x] = 1; // Nascita
} else {
nextGrid[y][x] = grid[y][x]; // Invariato
}
}
}
// Swap grids per prossima generazione
[grid, nextGrid] = [nextGrid, grid];
}
Ottimizzazioni
- Hashlife algorithm: per griglie sparse e pattern altamente ripetitivi
- Boundary wrapping: griglia toroidale (bordi si connettono)
- Canvas partial update: ridisegna solo celle modificate
- Web Workers: calcolo multi-thread per griglie grandi (>1000×1000)
Pattern Famosi
Methuselah Patterns
Pattern che partono piccoli ma evolvono per centinaia o migliaia di generazioni:
- R-pentomino: 5 celle → stabilizza dopo 1103 generazioni
- Acorn: 7 celle → stabilizza dopo 5206 generazioni
- Diehard: 7 celle → scompare dopo 130 generazioni
Guns (Cannoni)
Generano un flusso infinito di glider:
- Gosper Glider Gun: primo gun scoperto (1970)
- Simkin Glider Gun: più compatto
- Max Gun: produce glider più velocemente
Infinite Growth
Pattern che crescono all’infinito:
- Infinite glider generator
- Puffer trains: treni che lasciano dietro di sé detriti
Proprietà Matematiche
Turing Completezza
Il Game of Life è Turing completo: può simulare qualsiasi computer. Sono stati costruiti:
- Calcolatori binari
- NAND gate universali
- Un intero computer funzionante (progetto “Tetris in Game of Life”)
Indecidibilità
Non esiste un algoritmo che possa predire se un pattern arbitrario:
- Si stabilizzerà
- Diventerà periodico
- Crescerà infinitamente
- Scomparirà completamente
Questo deriva dal Problema della Fermata di Turing.
Complessità Emergente
Da 4 regole semplici emerge:
- Comportamento caotico
- Auto-organizzazione
- Pattern complessi imprevedibili
- Analogie con sistemi biologici reali
Storia e Impatto
Creazione (1970)
John Conway inventò il Game of Life cercando un automa cellulare con proprietà interessanti:
- Non deve crescere troppo rapidamente
- Non deve estinguersi troppo facilmente
- Deve mostrare comportamenti imprevedibili
Pubblicazione
Apparve per la prima volta nella rubrica “Mathematical Games” di Martin Gardner su Scientific American (Ottobre 1970), scatenando un fenomeno mondiale.
Influenza Culturale
- Scienze della complessità: ispirazione per teoria del chaos
- Biologia teoretica: modelli di popolazioni e ecosistemi
- Computer science: automi cellulari e computazione
- Arte generativa: pattern visuali e musica algoritmica
Applicazioni Reali
Biologia
- Modelli di crescita batterica
- Simulazioni di colonie cellulari
- Pattern di pigmentazione animale
Fisica
- Cristalli e formazione di pattern
- Dinamiche fluidi (automi cellulari lattice-gas)
Informatica
- Crittografia
- Generazione procedurale
- Test di algoritmi paralleli
Curiosità
Hashlife (1984)
Algoritmo di Bill Gosper che può simulare 2^10000 generazioni in pochi secondi per certi pattern, sfruttando memoization massiva.
Game of Life nel Gioco
È possibile costruire un Game of Life dentro il Game of Life stesso (meta-simulazione ricorsiva).
Numeri Record
- Glider synthesis: Qualsiasi pattern finito può essere costruito da glider
- Largest still life: Oltre 2 milioni di celle (configurazioni sintetiche)
Link Utili
- Conway’s Game of Life - Wikipedia
- LifeWiki - Enciclopedia Pattern
- Golly - Simulatore Avanzato
- Life Lexicon - Pattern Database
Esplora il Game of Life sul desktop virtuale aprendo l’icona 🦠 dal gruppo Mini Apps.