Beim (immer noch andauernden) Evaluieren was ein CH32V003 kann (und was nicht) habe ich ein altes Spieleprogramm auf den Chip portiert, der im Ursprung einmal als JavaScript kodiert, danach auf einen ATmega portiert war.
Jetzt habe ich das weiter auf eben einen CH32V003 portiert. Hier ging es mir erst einmal nur darum, die "KI" des Spiels auf den Chip zu portieren um zu sehen, wie groß das Compilat werden wird. Aus diesem Grund geschieht die Visualisierung des Spiels in in einem seriellen Terminal (Putty, Picocom o.ä.).
Wahrscheinlich werde ich dieses Programm noch weiter bearbeiten, damit das VierGewinnt auch in Verbindung mit einem grafischem Display funktioniert.
Das Programm selbst setzt auf dem CH32FUN von Christian Lohr auf, das ich auf das wesentliche "gestrippt" habe, weil ich definitiv andere MCU's als den V003 nicht bearbeiten möchte.
Zudem habe ich dann das Framework selbst in einen Ordner im Projektverzeichnis abgelegt und das Makefile meinen Gegebenheiten angepasst. Hier heißt das, dass systemweit der Compiler riscv-none-elf-gcc sowie das Kommandozeilentool minichlink verfügbar sein muß.
Das Makefile selbst wurde so bearbeitet, dass es bei einem Aufruf nicht mehr automatisch einen Compiler-Linkergang und einen Flashvorgang vornimmt, sondern lediglich compiliert und linkt. Ein Flashvorgang muß mit
make flash
gestartet werden.
Ein Auspacken des hier angehängten Archivs in ein Verzeichnis und ein dortiges Starten des Makes reicht aus um das Programm zu übersetzen.
Die zusätzlich zum VierGewinnt Spiel benötigten Dateien habe ich in einer kleinen Dokumentation beschrieben und hier ebenfalls im Anhang hinzugefügt.
Wenn das jemand ausprobieren mag: Viel Spaß damit.
Zur KI:
Die KI ist "relativ" spieleschwach, da ich meine stärkere KI des Spiels (Mini-Max-Algorithmus) aufgrund des wenigen RAM nicht verwenden konnte. Für ungeübte Spieler und Kinder kann das aber dennoch schon eine Herausforderung sein, gegen das Programm zu gewinnen.
Nein, ich brauche keine Belehrung über andere Chips der CH32-Familie. Ein (deutlich) und schwer zu schlagendes VierGewinnt habe ich für einen STM32F103 / F401 schon (auch mit Display) realisiert. Hier geht es "nur" darum, was eben der V003 und was nicht!



