Piet – Online ausprobieren – A Coding Game [Kurzeinführung]

Piet (Mondrian) ist ein esoterische Sprache, die in als Bild mit Farben [Eigentlich ein Farbarray] geschrieben/gezeichnet wird. Das Ganze ist ein richtiges Game, geht es doch herauszufinden, wie das Ganze funktioniert. Leider gibt es keine Möglichkeit, den Code selbst wieder zu verändern – also selbst wieder Grafik zu generieren. In diesem Sinn ist der Weg offen für eine Sprache, die auch das kann .-)

Online-IDE: https://gabriellesc.github.io/piet/index.html

Der Editor sieht so aus. Unbedingt den Debugger einblenden, denn nur dort lässt sich ein PietBild „ausführen“.

Schaltet man den Debugger ein hat man eine komplette IDE vor sich.

Das erste Ausprobieren ist irritierend. Denn „clickt“ man in die Befehlsfelder verändern sich diese permanent – je nachdem, was man gerade in einem Feld angewendet hat.

Eine „einfache Einführung“ findet sich hier:

https://docs.google.com/presentation/d/e/2PACX-1vQL2EVXcFKY1eW475ZQakUC3YARM7OzqwvpL-eFkkVkjFMXxY1G3qOHQCP2mmxAJlPVlzKsla6o-3lc/pub?start=false&loop=false&delayms=3000&slide=id.g312613e516_0_155

Wie kann ich einen Buchstaben ausgeben. Wichtigstes Aha ist dabei. Es braucht zuerst einen Block mit Push, dann kann man auf dem Stack ein Out(char) ausführen.

und dann mit 1s dunkler Push und das gelbe ist dann OUT(char).

Man verstehe dann sehr schnell, warum es ein viel höhere Auflösung braucht für etwa ein Hello World.

Denn es braucht letztlich einfach diese Blöcke als Argument für OUT.

Das heisst man wählt zuerst den Befehl und färbt einen Block als Argument ein und führt dann die Anzahl des Blocks aus.

Der Cursor scheint am Ende des Feldes nach Rechts zu drehen.

Modell scheint zu sein:

[In der Hand]

Wenn man etwa 3+2 rechnen will wäre das so lösbar:

Hochzählen im Stack?

1 PUSH | 1 push | x pop | + 

Befehl eingeben:

1. zu oberst anfangen – auf Weiss klicken, dann Farbe auswählen

2. dann den Befehl, ist dann irgendwas dunkleres

Eigentlich geht es nur um Helligkeit und nicht um Farben. Darum immer mit Weiss anfange und dann etwas anderes Klicken.

Printen des Hochzählens?

// Wichtig hier : DUP – Duplizieren des obersten Elements des Stacks

1 PUSH | 1 push | x pop | x + | x DUP | x OUT(num)

2 grösser als 1?

xxPUSH xPUSH xGREATER // Stack 0|1

7*3

7 push | 3 push | x* // Result on stack

Selbstverständlich kann und muss das ganze komplexer werden, wenn es um If-then Bedingungen geht. Hierzu stehen Befehle wie (Direction-)Pointer zur Verfügung, wie man sagen kann, in welche Richtung der Cursor weiterläuft. Und dann gibt es noch die Möglichkeit zu sagen, welchen Block man gerade ansteuert.

Aber das scheint dann eine weitere Heldenreise zu sein.

Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.