Code Competition "Game of Life" 09/2017 | IT-Talents

Dein letzter Login ist schon eine Weile her.

Bitte überprüfe, ob alle Angaben in Deinem Profil noch aktuell sind.


Game of Life 2017

So läuft das Leben: Erstelle Deinen eigenen zellulären Automaten.











{ABOUT}

Convay's Game of Life ist eine klassische Problemstellung in der Informatik. Es handelt sich dabei um einen zweidimensionalen, zellulären Automaten.
Ausgangspunkt ist ein Spielfeld mit X mal Y Zellen. Alle Zellen können entweder tot oder lebendig sein (also Status 0 oder 1 haben).
Der Status der Zellen wird durch ein Regelset bestimmt und das Spiel ist rundenbasiert. Jede Spielrunde (auch "Generation" genannt), wird anhand dieser Regeln bestimmt, ob die Zelle tot oder lebendig ist.
Begonnen wird das Spiel mit einer "Startgeneration". Eine Startgeneration ist nichts anderes als die initiale Belegung der Zellen mit einem Status.
Wir können mit Hilfe von Convays Game of Life den "Lebenszyklus" von Formen auf dem Spielfeld simulieren. Je nach Form kommen dabei mitunter spannende Ergebnisse zum Vorschein.

{INPUT}

Deine Aufgabe ist es, das Game of Life einmal selbst zu programmieren. Das ist gar nicht so schwer, wie es sich anhört, macht viel Spaß und man erfährt viel über die in der Informatik immer wieder auftauchenden "Automaten".

Dein Programm muss folgendes beinhalten:

Spielfeld und Zellen

Das Spielfeld ist ein Gitternetz aus X mal Y Zellen. Diese Zellen können jeweils zwei Zustände haben: tot oder lebendig (0 bzw. 1)
Jede Zelle auf dem Spielfeld hat 8 Nachbarzellen. Wird das Spielfeld am Rand verlassen, so wird es an der gegenüberligenden Seite wieder betreten. Eine Zelle am Rand des Spielfeldes hat ihre Nachbarzellen also auch auf der gegenüberliegenden Seite.
Das grundlegende Objekt ist eine Zelle. Diese Zelle muss ihre Position kennen (die Position einer Zelle wird im Verlauf nicht gewechselt, nur der Status) und einen Status haben.
Das Spielfeld ist demnach eine Anordnung von allen lebenden und toten Zellen.

Zyklus

Das "Game of Life" ist zyklisch angelegt. Das bedeutet, es wird nach und nach immer wieder eine Spielrunde ausgeführt. In jeder Spielrunde werden alle Regeln abgefragt und entsprechend dieser Regeln der neue Status der Zelle (tot oder lebendig) bestimmt.

Spielregeln

Die nächste Generation an lebenden Zellen (also der Status aller Zellen in der nächsten Spielrunde) wird durch ein einfaches Regelset berechnet:
1) Jede lebende Zelle, die weniger als 2 lebende Nachbarzellen hat, stirbt
2) Jede lebende Zelle, die 2 oder 3 lebendige Nachbarzellen hat, lebt weiter
3) Jede lebende Zelle, die mehr als 3 lebende Nachbarzellen hat, stirbt
4) Jede tote Zelle, die genau 3 lebende Nachbarzellen hat, wird lebendig

Ausgabe

Das Game of Life muss eine Ausgabe haben und es müssen Parameter übergeben werden können. Ob Du dabei eine Ausgabe des Spielfeldes und die Übergabe von Mustern (Erstbesetzung des Spielfeldes) auf der Kommandozeile realisierst, oder ob Du eine grafische Oberfläche erstellst, bleibt Dir überlassen.

{REVIEW}

Worauf achten wir bei der Bewertung Deiner Abgabe?

  • Funktionalität: Lässt sich das Programm bedienen? Tut die Anwendung oder die Funktion, was sie soll? Wie umfangreich sind die Funktionen?
  • Code-Qualität: Ist der Code sinnvoll strukturiert und effizient?
  • Code-Lesbarkeit / Dokumentation: Lässt sich der Quellcode nachvollziehen? Ist der Code kommentiert?
  • Setup: Ist das System einfach einzurichten / aufzusetzen? (z.B. mittels guter Dokumentation, Docker, Vagrant, Skripte, o.ä.) ACHTUNG: Lösungen, bei denen das Setup mehr als 10 Minuten dauert, werden von der Bewertung ausgeschlossen.
  • README: Wird eine README mitgeliefert, die zeigt, wie das Programm installiert und aufgerufen werden kann?
  • Welche Zusatzfeatures wurden eingebaut?

Wie bewerten wir?

{POST}

Jetzt Lösung abgeben

Wir führen diese Code Competition in Zusammenarbeit mit unserem Partner, der FORTIS IT-Services GmbH durch.
FORTIS ist ein innovatives IT-Dienstleistungsunternehmen, das seinen Kunden – die großen deutschen Player der Branchen Automotive, Luftfahrt, Elektrotechnik und Medien – maßgeschneiderte Projektdienstleistungen bietet. FORTIS entwickelt individuelle Softwarelösungen, leitet Projekte, optimiert Prozesse und passt den Einsatz von SAP-Systemen an.

Win!

  1. Platz: 500 €
  2. Platz: 400 €
  3. Platz: 300 €

Facts

Partner

Zeitlicher Ablauf

Abgabetermin:
30. September 2017 - 23:59Uhr

Auswertung:
Oktober 2017

Siegerehrung:
Ende November 2017

Abgabe

Programmiersprachen:
Java, C, C++, C#, JavaScript, Python, Haskell, PHP/HTML/MySQL sowie alle gängigen Programmiersprachen.
Als Form der Lösung ist erlaubt: Webseite, Desktopanwendung oder Konsolenein- und Ausgabe. Die Verwendung von Frameworks ist erlaubt. Bitte keine mobilen Apps.

Help!

Du hast Fragen? Immer her damit!
 
Jan-Dirk
Tel.: +49 521 / 911 730 52
E-Mail: talente@it-talents.de

Schnell-Login für unsere Mitglieder

Tipp: Halte Dein Profil aktuell.

Lass' uns wissen, falls sich etwas Neues bei Dir ergibt.

Tipp: Vervollständige Dein Profil für noch bessere Karrierechancen.

Bist Du Schüler, Student oder bereits berufstätig? Teile uns Deinen aktuellen Status mit, damit wir Dir sinnvolle Aufgaben anbieten können.

Jetzt Status angeben

Wann stehst Du der IT-Branche zur Verfügung?

Bitte Monat und Jahr angeben.

{{ perspectiveForm.availableFrom.$error.dynamic }}

Neuer Versuch

Wo möchtest Du durchstarten?

{{ location.geolocation.name }}×
Bitte mindestens ein Ort angeben.

Als {{currentUser.status.title}} bist Du bereit für:


Lade Beschäftigungsarten

Bitte wähle den Zeitpunkt, Ort und min. eine Beschäftigungsart aus.