Game of Life is een simulatie van de groei van
cellen.
Dit spel is in de leereenheid opgenomen om het gebruik van
tweedimensionale arrays te illustreren. Het grootste gedeelte van de code
krijgt u als bouwsteen, en hoeft u ook niet te kunnen begrijpen: de
hiervoor benodigde animatietechnieken en grafische mogelijkheden komen aan
de orde in de vervolgcursus Objectgeoriënteerd programmeren met Java. De
klasse Life implementeert u wel zelf.
Het spel bestaat uit een rechthoekig veld verdeeld in cellen. Een cel kan wel of niet bevolkt zijn. Cellen kunnen aan de hand van een paar regels uitsterven, overleven of zich vermenigvuldigen. Afhankelijk van de beginpopulatie kunnen de cellen van generatie tot generatie tot allerlei patronen evolueren.
De groei van
cellen over een generatie volgt de volgende regels:
1 - en bevolkte cel
met geen of één buurcel sterft uit eenzaamheid.
2 - Een bevolkte cel
met vier of meer buurcellen sterft door overbevolking.
3 - Een bevolkte
cel met twee of drie buurcellen overleeft.
4 - Een onbevolkte cel met
drie buurcellen wordt bevolkt.
5 - Andere cellen blijven
ongewijzigd.
U kunt de applet uitproberen door minimaal drie aaneengesloten cellen te bevolken door er op te klikken (anders sterft de populatie onmiddellijk uit) en vervolgens op de knop Volgende te klikken om de volgende generatie te zien. U kunt ook op de Start-knop klikken om een animatie van de volgende generaties te zien te krijgen.
Game of Life is
bedacht door de wiskundige John Conway in Cambridge. Het spel kreeg
bekendheid door een artikel in Scientfic American in 1971 en is uitvoerig
beschreven in het boek Berlekamp, E.R. e.a., Winning Ways,
Volume 2, London, Academic Press, 1982. Meer dan een spel is Game
of Life een simulatie van de groei van cellen.
Er zijn een aantal
interssante vraagstukken:
- welke beginpopulatie gaat zich na een
aantal generaties herhalen?
- is er een beginpopulatie die op een
onbegrensd veld onbeperkt blijft groeien?
- zijn er populaties die
alleen in een beginsituatie kunnen bestaan omdat er geen oudergeneratie
van kan bestaan?
- welke populaties zijn onveranderlijk?