Schreibe kleinen Assembler-Code in ein CPU-Raster, das Werte an seine Nachbarn übergibt, um den Eingabestrom ins Ziel zu verwandeln, ohne Deadlocks zu verursachen.
So wird gespielt
Du programmierst ein Raster sehr kleiner Computer. Jeder Knoten führt seine eigene kurze Instruktionsliste aus und kann nur mit den direkt benachbarten Knoten kommunizieren, indem er Werte über Ports weitergibt – eine Zahl, die das Raster überqueren muss, muss also von Hand von Knoten zu Knoten weitergereicht werden.
Jeder Knoten verfügt über einen Akkumulator und ein paar Anweisungen: Wert verschieben, addieren, subtrahieren, springen.
Ein Knoten kann aus dem Knoten oben, unten, links oder rechts lesen oder dorthin schreiben, oder auf die Eingabe- und Ausgabedatenströme zugreifen.
Ports blockieren. Ein Knoten, der nach rechts schreibt, wartet einfach, bis der Knoten rechts von ihm von seiner linken Seite liest.
Das bedeutet, dass zwei Knoten zeitlich abgestimmt sein müssen, nicht nur wertmäßig.
Wenn ein kompletter Zyklus vergeht, ohne dass jemand Fortschritt macht, und jemand noch wartet, ist das Raster in einem Deadlock.
Das Puzzle ist gelöst, wenn der Ausgabedatenstrom dem Ziel entspricht, das das Level verlangt.
Steuerung
Desktop: Gib Code in das Textfeld jedes Knotens ein, wähle ein Level aus dem Dropdown-Menü und drücke dann auf Ausführen.
Smartphone & Tablet: Funktioniert, aber für das Schreiben des Codes wird dringend eine externe Tastatur empfohlen.
Spielmodi
Täglich: Ein gemeinsames Puzzle, das aus dem heutigen Datum generiert wird.
Übung: Durchlaufe frische, zufällig generierte Eingaben mit der Schaltfläche „Neu“.
Tipps & Strategie
Plane die Route, bevor du die Arithmetik machst. Die meisten Fehler entstehen dadurch, dass Werte nicht dorthin gelangen, wo sie hingehören, nicht durch falsche Summen.
Zwei Knoten, die aufeinander warten, sind der klassische Deadlock. Wenn beide in Richtung des anderen schreiben, bevor einer liest, bewegt sich keiner mehr.
Halte den Datenfluss, wo möglich, in eine Richtung. Ein Raster mit einer konsistenten Richtung ist viel leichter zu durchschauen als eines, in dem Werte sich kreuzen.
Nutze einen Knoten als reine Relaisstation, wenn du musst. Einfach nur einen Wert weiterzugeben, ist eine legitime und oft notwendige Aufgabe.
Lies den blockierten Knoten, nicht die falsche Antwort. Wenn die Ausgabe stockt, ist das Informative, welcher Knoten wartet und auf wen.
Was du lernst
Node Network ist ein Parallelprogrammierungs-Puzzle über Nachrichtenübermittlung und die Vermeidung von Deadlocks in einem Prozessormesh.
Fähigkeiten: Parallel- und Concurrent-Programmierung, Nachrichtenübermittlung, Deadlock-Vermeidung
Geeignet für: ca. Klassen 9–12 (ab 14 Jahren)
Für Eltern & Lehrkräfte: Parallelität und Deadlocks, praktisch erprobt.
Ursprünge
Ein Raster aus sehr kleinen Computern, von denen jeder seine eigene kurze Befehlsliste ausführt und nur mit den direkt benachbarten sprechen kann, ist TIS-100 – Zachtronics, Juli 2015 –, das seine Rätsel auf einer fiktiven, beschädigten Maschine aus den 1970er-Jahren ansiedelte.
Die vermittelte Einschränkung ist real und zentral für paralleles Rechnen: Ohne gemeinsamen Speicher muss ein Wert, der das Raster durchqueren soll, von Hand Knoten für Knoten per Nachrichtenaustausch weitergereicht werden.
Und beim Weiterreichen von Hand begegnet man dem Deadlock – zwei Knoten, die jeweils auf den anderen warten, beide für immer angehalten. Es ist ein Fehler, der sich an einer Tafel nicht wirklich erklären lässt, weil die ganze Schwierigkeit darin besteht, dass sich jeder Knoten für sich genommen korrekt verhält.
Über Node Network
Node Network ist ein Parallelprogrammierungs-Puzzle über Nachrichtenübermittlung und die Vermeidung von Deadlocks in einem Prozessormesh. Es ist ein originales, kostenloses Browser-Spiel, das in-house für PlayPendium entwickelt wurde.
Ein originelles, kostenloses Browserspiel — ohne Download. Alle Spiele ansehen →