Grafische Veranschaulichung der Ein- und Ausgabe
Es war zwei dein Vorschlag @ahbxf, aber ich schreibe Ihn mal auf, bevor wir es vergessen. Als Anregung dienen
- https://code.org/hourofcode/overview (vorgefertigte Aufgaben, meist einfach gehalten)
- https://arcade.makecode.com/
- https://www.greenfoot.org/door (Standalone-Variante, aber spannend in Hinblick auf #9)
- https://snap.berkeley.edu/
- https://www.mebis.bayern.de/infoportal?s=karol (gibt es als 3D-Variante)
- https://www.swisseduc.ch/informatik/karatojava/kara/ (Standalone-Variante)
- http://www.java-hamster-modell.de/ (Standalone-Variante)
Es geht somit darum eine zweidimensionale Welt (als Raster oder doch pixelgenau?) zu erstellen, auf welche Objekte platziert und bewegt bzw. interagieren können. Die Welt und Objekte wären pro Testfall vorgegeben. Die Steuerung könnte in einer einfachsten Form über die Ausgabe bestimmter Zeichenketten erfolgen (was wiederum dem Nutzer vorgegebene Methoden übernehmen könnten, welche dann lediglich aufgerufen werden müssen). Eine Zeichenkette obj01_v10
könnte bedeuten, dass Objekt 1 sich 10 Felder bzw. Pixel vorwärts bewegen soll.
Herausforderungen:
- Ohne eine Interaktion macht dies keinen Sinn. So müsste
obj01_v10
einen Fehler liefern (Test schlägt fehl) wenn ein Hinderniss versucht werden würde zu überschreiten. Genauso könnte man auch eine Testbedingung daran knüpfen, dass das entsprechende Objekt bei einer bestimmten Position angelangt. - Die Objekte stehen nicht wirklich als Objekte in der gewählten Programmiersprache zur Verfügung. Dies könnte man umgehen, indem man diese selbst erstellt. Dennoch fehlt die z.B. Bequemlichkeit von Greenfoot.
- Manipulationen müssten verhindert werden (z.B. soll Objekt 2 von einem vorgegebene Programm gesteuert werden, d.h. Anweisungen wie
obj02_v10
dürfen nicht funkionieren und müssen zu einen Fehler führen). - Momentan sind die Möglichkeiten noch sehr eingeschränkt und ähneln eher den Beschränkungen von code.org. Man müsste die Welt auch verändern können (mindestens wie z.B. bei Kara oder Robot Karol oder dem Hamster-Modell), Objekte dynamisch erstellen und löschen können, welche dann auch als Bild angezeigt werden (wie bei Greenfoot oder Snap!). Objekte sollten unbedingt mitbekommen können, ob Sie auf dem gleichen Feld wie ein anderes sind usw.