Game of Life in swift

programmazione

#1

Buon giorno!
Ultimamente mi sto avvicinando alla programmazione in swift, in particolar modo alla programmazione per iOS.
Visto che i tutorial di Apple erano noiosi, ho provato a inventarmi qualcosa, e quale bun esercizio di programmazione fine a se stesse c’è migliore del Gioco della vita.

Il su citato Gioco della vita è un automa cellulare, inventato dal matematico inglese John Conway nei anni 60.
Essendo che il gioco si basa su semplici regole e l’evoluzione è determinata solo dallo stato iniziale, mi ha permesso di ricrearlo senza troppe difficoltà, non dovendo esserci input dal utente se non la scelta della configurazione iniziale e un modo di dire al programma di avanzare.

Visto che sono alle prime armi per quanto riguarda la programmazione al di fuori di shell, la visualizzazione nella app viene fatta tramite una text view, il che ha reso semplice creare una versione che funzione al interno di un terminale!

Qui sotto trovare allegato il codice.
Per usarlo, basta aprire un terminale e lanciare swift gameOfLife.swift.txt
Richiede che sia installato swift (che fa parte di xcode) sulla macchina.
Non ho ancora provato, ma dovrebbe funzionare anche su linux visto che non usa nessuna funzione particolare legata ad UI.

Nelle ultime righe viene chiamata una funzione per inizializzare una configurazione iniziale fra quelle che ho inserito e un ciclo for per farla andare 241 volte (cioè fin tanto che non diventa stabile).

thunderbird() for i in 0...240 { step() }

Cambiando queste due cose si possono provare le varie configurazioni che ho inserito.
Le funzioni sono blinker() glider() miniGlider() conf3() turtle() beacon() lwss() pulsar() gun() thundrbird() pentadecathlon()

Le configurazioni sono dei array contenenti a loro volta dei array di Int, dove i valori sono 0 o 1 a seconda se le cellule sono vive o morte.
Allego anche alcuni esempi di output.

gameOfLife.swift.txt (14,5 KB)
gun.txt (203,6 KB)
thunderbird.txt (568,1 KB)


Game of Life in Javascript