RunCode: Teleportieren

Bei der letzten RLFB zu RunCode wurde aus dem Teilnehmerkreis vorgeschlagen, den Roboter per Befehl auf eine andere Koordinate zu versetzen, um zu testen, ob ein programmierter Algorithmus auch auf einer anderen Insel funktionieren würden. Das ist jetzt umgesetzt. Es gibt jetzt den Befehl teleportiere. Dazu gibt es zwei Möglichkeiten:

teleportiere(x,y): Der Roboter wird auf eine Insel teleportiert, die sich nahe an der x/y-Koordinate befindet. Ich wollte damit verhindern, dass man den Roboter versehentlich versenkt.

teleportiere(): Verwendet man keinen Parameter, so wird man auf eine zufällige Insel teleportiert.

Außerdem wurden einige Bugs beseitigt.

Orinoco – Update: 12.12.2020

Orinoco basiert zwar auf dem prinzipiell plattformunabhängigen .NET-Framework, lief aber bisher trotzdem nur unter Windows (bzw. Windowslaufzeitumgebungen wie wine). Grund war ein (unnötiger) Windows-API-Call, den ich jetzt endlich entfernt habe. Somit sollte Orinoco überall laufen, wo ein aktuelles .NET-Framework installiert ist (d.h. mindestens 4.5.2). Getestet habe ich Orinoco mit einem Raspberry Pi. Dort war die .NET-Implementierung mono durch ein

sudo apt-get install mono-complete

sofort installiert und Orinoco lief auf Anhieb. Mono kann man auch auf einem Mac installieren, testen konnte ich das aber bisher nicht.

Ab jetzt ändere ich die Versionierung. Die Versionsnummer ist einfach das Veröffentlichungsdatum.

Hier gehts zum Download

RunCode – November-Update

Die Kameraführung ist jetzt etwas weicher und ruckelt nicht so sehr, wenn sich der Roboter bewegt. Dann wurde der Syntaxcheck im Zusammenhang mit den Kontrollstrukturen deutlich optimiert. Es gibt jetzt Rückmeldungen, wenn vergessen wurde, beispielsweise eine Wiederholung zu beenden. Außerdem kann man jetzt Ziegel in beliebiger Farbe (definiert durch rot, gelb und blau-Werte) hinlegen.

Lenna aus farbigen RunCode-Ziegel

RunCode – Kompatibilität zu neuen Schulbüchern verbessert

In den neuen Schulbüchern zum G9 hat sich die Syntax geändert. Beispielsweise enden bedingte Anweisungen nun mit endewenn anstatt mit *wenn. Oder heißt eine neue Funktion nun Methode und nicht mehr Anweisung. Außerdem kann man mit dem Befehl Hinlegen nun auch Ziegelsteine in anderen Farben produzieren. Auf Wunsch der Mädchen der letztjährigen siebten Klasse gibt es auch die Farbe pink.

Kommentare mit RunCode

Mit dem heutigen Update kann man in RunCode auch Kommentare einfügen. Da ich mich nicht so recht für ein Kommentarzeichen entscheiden konnte, habe ich gleich mehrere Möglichkeiten, die in diversen Umgebungen üblich sind, hineingepackt. Folgende Kommentierungsarten stehen zur Verfügung (in entsprechender Prioritätenreigenfolge):

  1. /* Kommentar */
  2. { Kommentar }
  3. # Kommentar
  4. % Kommentar
  5. // Kommentar

RunCode – Roboter macht Beep!

Es wurde ein kleines Update eingespielt. Der Roboter ist jetzt in der Lage ein Beep-Signal durch die Methode Ton() von sich zu geben. Die Aktualisierung wurde durchgeführt, da ich darauf aufmerksam gemacht wurde, dass das ähnlichs Systeme wohl auch können und es ein Ziel war, RunCode möglichst kompatibel zu gestalten.

Die neue Version befindet sich hier.

Bugfix Runcode 13.03.19

Kurzmitteilung

In RunCode wurde ein Bug gefixed. Bisher konnten benutzerdefinierte Anweisungen nicht ausgeführt werden, wenn dem Bezeichner die runden Klammern für die Parameter folgten. Herzlichen Dank an Herrn Rau, der mir den Fehler mitteilte.

Speichern und Laden des Editors in RunCode

Kurzmitteilung

RunCode wurde aktualisiert. In der neuen Version kann der Programmcode des Editors nun in eine Textdatei gespeichert und daraus wieder geladen werden. Hierzu einfach einen Rechtsklick in den Editor durchführen und die entsprechende Auswahl treffen.

ORDER BY – Bug beseitigt

Ich habe festgestellt, dass die Abfrage
SELECT Kunde, Kaufdatum FROM KAUFDATEN ORDER BY Preis
nicht funktioniert, sondern dass die Abfrage
SELECT Kunde, Kaufdatum, Preis FROM KAUFDATEN ORDER BY Preis
lauten muss. Das ist natürlich nicht optimal, aber die Sache ist sehr tief im System verankert und lässt sich nicht auf die Schnelle lösen.

Edit: Das Problem ist mittlerweile gelöst!