003
06.04.2023, 14:00 Uhr
ThomasR
|
Rubik's Cube in Farbe
Schon 1985 schrieb ein belgischer Computer-Enthusiast ein Programm, das beim Lösen des Zauberwürfels helfen kann. Es ist in der Ur-Form hier http://robhagemans.github.io/basicode/basicode/Best_of_Basicode_2/B09_Kubus_van_Rubik.bc2 zu finden, wo es auch gleich ausprobiert werden kann. Die Bedienung fand ich zu unhandlich, besonders wegen der Abkürzungen niederländischer Worte für die Farben und Ebenen - A wie achtern O für unten, B für oben.
Deswegen habe ich vor ein paar Jahren die Bedienung auf deutsch umgeschrieben: siehe https://joyce.de/basicode/diesunddas/kubus.htm .
Als Rentner habe ich nun endlich die Zeit gefunden, umzusetzen, was mir schon lange vorschwebte: die Darstellung auf Farbe umzustellen.
Ich stelle es hier als ready-to-use-Programm vor Frank bietet freundlicherweise den Download von seiner Website an: http://www.kc85emu.de/rt/kubuskcc.bas . Eine KC85-Version gibt es hier: https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=20758 .
Eigentlich setzt es sich aus drei Bestandteilen zusammen, dem Bascoder, dessen Farberweiterung und zu guter Letzt dem Programm von Jan Broeckx. Das erwähne ich, um mich nicht mit fremden Fdern zu schmücken.
BasiCode, das Computer-Esperanto aus den achtziger Jahren hat sich auch in Großbritannien nie sehr stark verbreitet. Der BBC Acorn ist wohl ziemlich der einzige Computer, für den es dort auch Version 3 gab. Diesen Code von Peter Maathuis nahm 2005 Victor Reijs als Grundlage, um eine Version zu schreiben, die unter dem BBC Basic for Windows läuft, das eins zu eins auch unter CP/M auf dem Amstrad CPC nutzbar ist - und damit auch auf dem KC compact.
Wir nutzen jedoch das Locomotive-Basic. Hardwarebedingt stellen beide Basics in MODE 1 leider nur vier Farben zur Verfügung (siehe Ausgabe des Programms FARBTEST). Deswegen gab es noch einige Nacharbeit, das Programm in MODE 0 nutzbar zu machen, dort gibt es mehr als genug Farben für die sechs Seiten des Würfels. Nur für die größeren Textausgaben wird in MODE 1 gewechselt.
Das Programm (das durchgängig mit Großbuchstaben bedient wird) bietet drei Möglichkeiten:
- Von einem "aufgeräumten" Würfel ausgehend kann man (Grund-Achsen immer beibehalten, nicht den kompletten Würfel drehen!) die vordere, hintere, linke, rechte obere bzw. untere Ebene drehen und schließlich vom Programm wieder in Ordnung bringen lassen.
In manchen Fällen resigniert das Programm beim Lösen einer selbst eingegebenen Stellung, aber viele Lösungen schafft es tatsächlich. Natürlich darf man keine Kombinationen eingeben, die am realen Zauberwürfel nur durch Herausnehmen und verkehrt-wieder-Einsetzen eines Eck- oder Kantenteils (oder Wechseln von Klebeetiketten) erzeugt werden können. Hier entsteht eine Fehlermeldung, denn der Autor hat verschiedene Kniffe angewendet, um den komplexen Algorithmus im verfügbaren RAM unterzubringen. Einer davon ist, für nicht auftretende Fälle eine nicht existiereende Zeilennummer zu verwenden:
Quellcode: | ... 4530 IF A>6 THEN 4560 4540 ON A GOSUB 1,1,10450,1,10860,10870 4550 GOTO 4570 ... |
Das hat mich lange irritiert, ich hielt das für Übertragungsfehler und dachte, das Programm sei nicht lauffähig.
- Man kann seinen (verdrehten) realen Würfel Teilfläche für Teilfläche ins Programm eingeben und dann das Programm lösen lassen.
- Zu guter Letzt gibt es noch eine Demonstration von über einem Dutzend regelmäßigen Mustern nebst jeweils einer Anleitung, wie dieses Muster aus der Grundstellung zu erreichen ist.
-- Tot wie ein Dodo? viele Informationen zu BasiCode auf basicode.de
Cu via komputilo povas Esperanto? Jes, BasiCode! Dieser Beitrag wurde am 06.04.2023 um 14:04 Uhr von ThomasR editiert. |