[Projekt] Flink’s game of life

 

Wenn man Informatik studiert, wird man sehr wahrscheinlich Java lernen müssen/dürfen. Die meisten Leute in meinen Einführungskursen waren davon nicht so begeistert, ich selbst hatte gemischte Gefühle. Einerseits stellte ich mir in meinem Kopf das Programmieren total cool vor, ich denke dabei an Matrix, Stirb Langsam 4 oder einen der vielen anderen Filme mit einem gekonnten Hacker. Auf der anderen Seite sind Codezeilen kompliziert und einschüchternd und vor allem die Einführungsaufgaben sind superlangweilig. Tony Stark hat bestimmt nie stundenlang ‘Hello World’ und Stacks programmiert! Als Normalsterblicher muss man da aber durch und das Licht am Ende des Tunnels ist warm und wunderschön 😉

pfeildings

Was hat das mit diesem Projekt zu tun? Hat man die Grundlagen verstanden und interessiert sich für Spieleprogrammierung gibt es schon einige coole Sachen die man damit anstellen kann, die nicht zu schwierig sind. Ein Beispiel wäre Tic Tac Toe, am coolsten finde ich jedoch Conway’s game of life. Hat man das fertig programmiert, fühlt man sich wie ein Gott! Man hat Leben erschaffen!

Was ist Conway’s game of life genau? Im Prinzip ist es gar kein richtiges Spiel, sondern eine Simulation. Diese besteht aus quadratischen Zellen. Eine Zelle kann lebendig oder tot sein. Zu Anfang beleben wir zufällig etwa die Hälfte der Zellen, danach bestimmen ein paar wenige Grundregeln den Ablauf der Simulation. In jedem Frame werden folgende Regeln angewandt:

 

  1. Eine lebende Zelle mit weniger als zwei lebenden Nachbarn stirbt an Vereinsamung.
  2. Eine lebende Zelle mit zwei oder drei lebenden Nachbarn bleibt am Leben.
  3. Eine lebende Zelle mit mehr als drei lebenden Nachbarn stirbt an Überbevölkerung.
  4. Eine tote Zelle mit drei lebendigen Nachbarn wird im nächten Zug lebendig.

 

 
Conway's game of life

 

Das war alles. Aus diesen einfach Regeln entsteht ein unglaublich faszinierendes Gewusel. Viele Menschen haben in diesen Regeln spezielle Ausgangsformen entdeckt, die sich selbst reproduzieren, Formen die aussehen als würden sie sich bewegen, oszillierende Formen und vieles mehr.

Hier ein Gleiter!    Gleiter

Ich kann aus Zeitgründen nicht den Code erklären, aber Conway’s game of life ist eine recht berühmte Codeaufgabe, Tutorials sollten also für jede Sprache leicht zu finden sein. Vielleicht zeige ich in einem anderen Blogeintrag noch meine Java Variante 🙂 Also, wenn ihr die Grundlagen eurer Programmiersprache gelernt habt, und jetzt eine mehr grafiklastige Aufgabe sucht, dann programmiert Conway’s game of life! Selbst wenn ihr strikt einem Tutorial folgt, implementiert am Ende euren eigenen Twist, gebt den Zellen zum Beispiel eine maximale Lebensdauer in Runden oder ändert die Regeln. Zum Abschluss hier noch ein Link zu einer online Variante vom Game of life zum selbst mal ausprobieren. Bis nächste Woche, lernt was 😉

*spielt Witcher 3*