Ich machs diesma kurz: Bin drüber gestolpert und wollte es nachbauen!
Conway's Game Of Life ist ähnlich, aber hier sieht man schön den zeitlichen Verlauf auf der Y-Achse.
Bisschen was zu lesen:
https://en.wikipedia.org/wiki/Rule_110
https://en.wikipedia.org/wiki/Elementary_cellular_automaton
https://de.wikipedia.org/wiki/Zellul%C3%A4rer_Automat
Wie funktioniert das ganze?
Man sucht sich eine Zahl aus, die als Regel dienen soll, dabei gibt die Binärrepräsentation der Zahl den Zustand einer Zelle im nächsten Zeitpunkt an.
Beispiel 110 (kopiert vom ersten Wikipedia Artikel!):
Current Pattern | 111 | 110 | 101 | 100 | 011 | 010 | 001 | 000 |
New state for center cell | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
Dabei stellen die Bits im "Current Pattern" die Zelle links, die selbe Zelle und die Zelle rechts im Zeitpunkt davor dar.
Der neue Zustand ist die Binärrepresentation von 110d = 01101110b gestreckt auf die entsprechenden Patterns.
Anschließend muss man nur noch die erste Reihe angeben von der die restlichen Generationen entstehen sollen.
Der Bereich ist im Skript markiert, entweder kann man hier einfach nur einen Pixel 1 setzen oder man lässt sich was kreatives einfallen Alle x Pixel, oder ein Muster, ganz links, ganz rechts.
Für den Anfang ist es in der Mitte platziert um es nicht bei einem 'schlechten' Pattern etwas zu verpassen.
Vielleicht etwas träge auf langsameren Systemen, und da ist bestimmt noch ordentlich Performance drin, insbesondere mit bisschen ASM-Magie, wer mag kann sich gerne austoben.
Wie sieht das ganze dann aus?
Ein paar interessante Patterns hab ich im Skript aufgeschrieben. Viel Spaß!