Game of Life is een verzameling van regels die in 1970 door de Britse wiskundige John Conway bedacht zijn en leiden tot allerlei (bewegende) patronen.
Dit wordt ‘gespeeld’ op een tweedimensionaal rooster, met vierkante cellen die ‘levend’ 1
of ‘dood’ 0
kunnen zijn. De regels zijn als volgt:
Als je dit proces uitvoert, vertrekkende van een bepaalde startsituatie dan kunnen er zich interessante patronen ontwikkelen.
Om deze oefening op te lossen schrijf je twee functies.
Schrijf eerst een functie aantal_levend(rooster, r, c)
dat in een rooster
het aantal levende buren bepaalt van een gegeven cel op rij r
en kolom c
.
Schrijf een functie game(rooster)
die gegeven een rooster een nieuw rooster bepaalt, waarbij elke cel werd aangepast conform de drie regels. Gebruik hierbij de vorige functie aantal_levend(rooster, r, c)
.
Bestudeer grondig onderstaande voorbeelden.
>>> aantal_levend([[0, 0, 1, 0],
[1, 1, 1, 0],
[0, 1, 0, 0]], 1, 1)
4
>>> game([[0, 0, 1, 0],
[1, 1, 1, 0],
[0, 1, 0, 0]])
[[0, 0, 1, 0],
[1, 0, 1, 0],
[1, 1, 1, 0]]