Forum: Projekte & Code Game CodedColor für die STM32F103 Bluepill


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ralph S. (jjflash)


Angehängte Dateien:

Lesenswert?

Vor Jahren (und es war wirklich vor Jahren, genauere Anzahl derer 4) 
hatte ich angefangen gehabt, ein Rätselspiel für Mikrocontroller zu 
schreiben, das inspiriert war von den Rätsel in den Fernsehzeitschriften 
der ausgehenden 70er, anfangenden 80er Jahre.

Dieses hieß damals Symbolrechnen und heute weiß ich, dass es dafür einen 
"richtigen" Namen gibt: Arithmogriph.

Nun habe ich es nicht geschafft, auf einem kleinen Display (160x128 oder 
auch 128x128 Pixel) Symbole so abzubilden, dass die noch gut erkenn- und 
unterscheidbar sind. Also habe ich kurzerhand die Symbole durch Farben 
ersetzt und ich habe das ganze nunc "coded color" genannt.

Nachdem das Spiel vor 4 Jahren gelaufen ist, hatte ich das weggelegt 
gehabt, weil ich irgendwie keine Lust darauf hatte, ein Menü für das 
Spiel zu programmieren (eben eine Fleißarbeit).

Nachdem ich dann eben doch ein Menü dazugetan habe, möchte ich Spiel 
hier eben posten, vllt. mag das ja jemand spielen und knobbeln (habe ich 
jetzt eine ganze Weile lang getan).

Um was geht es?

Der Controller erstellt eine Rechenaufgabe in der Form:
1
812 + 251 = 1063
2
 -     +      -
3
625 - 491 =  134
4
 =     =      =
5
----------------
6
187 + 742 =  929

Hierbei verschlüsselt er jede einzelne Ziffer durch eine andere Farbe. 
Eine Verschlüsselung mit Buchstaben (weil hier keine Farben dargestellt 
werden können) würde das dann so aussehen:
1
DFB + BHF = FCJA
2
 -     +      -
3
JBH - IGF =  FAI
4
 =     =      =
5
----------------
6
FDE + EIB =  GBG

Beim Spiel gilt es, eben jeder Farbe eine Ziffer zuzuordnen. Hierfür 
kann mit den Tasten rechts-links eine Farbe markiert werden und mit den 
Tasten hoch-runter eine Ziffer eingestellt werden.

Wird das Menü angewählt, so kann dieses mit einem schnellen 
Doppeldrücken der hoch-Taste dieses aktiviert werden. Ein Doppeldrücken 
entspricht hier also einer Enter/Return Eingabe.

Im Menü stehen folgende Optionen zur Auswahl:

- Neu
- Load
- Save
- Auswahl
- Loesung
- Zurueck

Insgesamt stehen 9999 Rätsel zur Verfügung. Mit dem Menüpunkt "Auswahl" 
kann ein bestimmtes Rätsel aufgerufen werden.

------------------------------------

Im Archiv sind sämtliche Sourcecodes enthalten, um das Programm zu 
übersetzen (Linux) . Das Programm bedient sich der  libopencm3 
Bibliothek (die ebenfalls enthalten ist).

Packe das Archiv in ein Verzeichnis Deiner Wahl aus und wechsle in das 
dort in das Verzeichnis "game_codedcolor_release".

Ein einfacher Aufruf "make" übersetzt das Programm bei einem 
installierten
arm-none-eabi-gcc.

Zum Flashen der Bluepill benötigt es einen ST-Link V2 Programmer. Dieser 
wird durch ein Hostprogramm < st-link > auf dem Linuxrechner gesteuert.

Ein "make flash" programmiert die Bluepill mit dem Rätselprogramm.

Sollte im System kein < st-link > installiert sein, findet man die 
Programmersoftware zu einem st-link unter:

https://github.com/stlink-org/stlink/

----------------------------------------

Demjenigen, der das nachbauen und spielen möchte: Viel Spaß dabei,

Ralph

von Ralph S. (jjflash)


Lesenswert?

Ach herjeh, ich habe einen Fehler gemacht beim Schreiben der 
Verschlüsselung. Die Verschlüsselung im obigen Text muß lauten:
1
    812 + 251 = 1063
2
     -     +      -
3
    625 - 491 =  134
4
    ----------------
5
    187 + 742 =  929
6
7
##################################
8
9
    ECA +  ABC = CDJI
10
     -      +      -
11
    JAB -  HGC =  CIH
12
    -----------------
13
    CEF +  FHA =  GAG

von Rick (rick)


Lesenswert?

Nett, aber 2024 und der Font hat keine Umlaute?
Mitte der 90er hätte ich das ja noch akzeptiert...

von 900ss (900ss)


Lesenswert?

Rick schrieb:
> 2024 und der Font hat keine Umlaute

Ist das bei diesem Spiel/Anwendung tatsächlich relevant?
Du könntest diese auch selber einbauen wenn es dich dann soo stört.

Klingt mir eher wie: Hauptsache ich kann es schlecht machen.

: Bearbeitet durch User
von Jasson J. (jasson)


Lesenswert?

> Klingt mir eher wie: Hauptsache ich kann es schlecht machen.

Wenn ich mir die Lesenswert-Zähler über das Forum anschaue glaube ich 
fast, da sitzen Trolle mit ihrem Morgenkaffee und drücken fleißg den 
Minus-Button.

von Ralph S. (jjflash)


Lesenswert?

Rick schrieb:
> Nett, aber 2024 und der Font hat keine Umlaute?
> Mitte der 90er hätte ich das ja noch akzeptiert...

na ja, da der Font von mir händisch gemacht ist, dieser auch in 
Controllern mit wenig mit sehr wenig Speicher zum Einsatz kommt (und ich 
keine Lust darauf hatte den Zeichensatz zu erweitern), fehlen dem Font 
alle Zeichen > Ascii-Code 127 (und auch alle Zeichen < 32).

Wer das unbedingt machen mag, kann sich ja den Font um genau diese 
wenigen dt. Umlaute erweitern und an den Stellen einfügen an denen sie 
gebraucht werden... :-)

Im übrigen verwende ich in meinen Codes bis heute keine dt. Umlaute, 
damit das auch auf alten bis uralten Systemen noch sauber dargestellt 
wird.

In einem Controller UTF-8 zu verwenden finde ich persönlich etwas 
"übertrieben". Okay, ISO 8859-x würde ja auch gehen.

von J. S. (jojos)


Lesenswert?

Die Texte durchgängig in englisch wäre auch eine einfache Möglichkeit, 
mit Load/Save fängt der Mix ja schon an.

von Ralph S. (jjflash)


Lesenswert?

... by the way: Man hätte ja auch noch monieren können, dass im Menü 
deutsch und englisch gemischt angezeigt wird. Statt "save" hätte ich 
speichern und statt "load" hätte ich laden schreiben können.

Der Code sollte so gut dokumentiert an den Stellen sein, damit das, wie 
900ss schreibt, jeder selbst ändern kann!

von Rick (rick)


Lesenswert?

Ralph S. schrieb:
> Im übrigen verwende ich in meinen Codes bis heute keine dt. Umlaute,
> damit das auch auf alten bis uralten Systemen noch sauber dargestellt
> wird.
Das wiederum ist ein nachvollziehbarer Grund.

Ich wollte deine Arbeit im übrigen keinesfalls schlechtreden. Mir fällt 
nur immer wieder auf, das man mit solchen Kleinigkeiten viel rausholen 
bzw. auch kaputtmachen kann.

(Bestes Beispiel: Ein Gebrauchtwagenhändler, der mir eine verdreckte 
Karre für 15k verkaufen wollte...)

von Steve van de Grens (roehrmond)


Lesenswert?

Jasson J. schrieb:
>> Klingt mir eher wie: Hauptsache ich kann es schlecht machen.
>
> Wenn ich mir die Lesenswert-Zähler über das Forum anschaue glaube ich
> fast, da sitzen Trolle mit ihrem Morgenkaffee und drücken fleißg den
> Minus-Button.

So ist es. Allerdings wird auch dort vieles automatisiert.

von Ralph S. (jjflash)


Lesenswert?

Steve van de Grens schrieb:
> dort vieles automatisiert.

:-) das wurde an anderen Stellen ja schon häufig diskutiert und das 
macht die "Lesenswert?" Eigentschaft der Seiten absolut unbrauchbar. 
Erstaunlich ist hier die "Geschwindigkeit" mit der ein Post eine -5 
erreicht und ich bin noch mehr erstaunt dass der Post von Steve nur eine 
"-4" hat.

Für alle diejenigen deren Herz an der Bewertungsfunktion hängt: denkt 
euch einfach 5 negative Bewertungen weniger und dann passt das 
(vielleicht oder vielleicht auch nicht):

Kräht der Hahn früh morgens auf dem Mist, ändert sich das Wetter oder es 
bleibt wie es ist.

von Karsten W. (lsmod)


Lesenswert?

Ein schönes Projekt und Danke das Du es zur Verfügung stellst !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.