Hallo!
Bugjam bekommt heute ein verfrühtes C128 Nikolaus-Geschenk von mir und natürlich alle, die sich für Basic-Kartenspiele auf 8 Bit Rechnern interessieren. Ich dachte ich mache daraus einen eigenen Thread, der Vorgänger-Thread "Kartenspiele" ist vom Thema her ja nicht direkt Matatu.
Das Spiel funktioniert wie Mao Mao, nur mit ein paar Sonderregeln:
As (Wert 15) = Man darf Farbwechsel bestimmen
Bube / 8 (Wert 11 / Wert 8 )= Man darf nochmal ablegen
2 (Wert 20) = Der nächste der ziehen muss weil er nicht ablegen kann zieht +2. Das kann sich steigern mit weiteren 2en und das Spiel merkt sich die Strafe bis zu dem Moment wo einer ablegen muss
Cutter 7 = Bei Spielbeginn liegt irgendeine Karte auf dem Stapel die irgendeine Farbe hat. Diese Farbe ist die Cutter-Farbe (also Herz, Pik, Karo oder Kreuz). Wer nun eine 7 dieser Farbe auf der Hand hat, kann "cutten", wenn das Blatt auf seiner Hand <= 25 Punkte ist.
Dann wird ausgezählt und wer die wenigsten Punkte hat gewinnt.
Ansonsten gewinnt der, der seine Karten zuerst los hat.
Ich habe noch eine Strafe eingebaut, und zwar für den Fall dass der Stapel leer wird weil alle Karten auf die Spieler verteilt sind. Dann wird das Spiel beendet anstatt dass Ziehversuche unterbunden werden. Natürlich könnte man durch Ablegen das Spiel zu beenden versuchen, man hat genug Blätter auf der Hand. Aber wer so blind ist und so viel übersieht, der sollte es von vorne probieren. Matatu ist ein schnelles Spiel, das geht in der Regel zack zack. Man kommt auch in so "Fieberphasen" wo man sagen kann "und jetzt das As, dann den Buben und jetzt hau ich die 7 rein".
Fehleingaben und Schummelversuche werden abgefangen. Das Spiel spricht auch besser mit einem als die Android-App zu Matatu, d.h. es sagt einem ob es Cut-Versuche gab, wie sie genau ausfielen, lässt die Info stehen anstatt sie sofort auszublenden so dass man sie nicht lesen kann, sagt einem bei wieviel Strafe der Karte 2 wir aktuell sind und sagt einem auch, welche Farbe man nach einem As spielen muss wenn man eine Fehleingabe gemacht hat.
Für unsere Forum-Coder:
Noch fehlt eine KI. Erstmal möchte ich das Spiel im 2-Spieler-Modus von Bugjam testen lassen.
Es fehlt auch eine grafische Petscii-Darstellung. Es gibt ja vorgefertigte Chars die wie gemacht sind für das Abbilden von echten Spielkarten.
Es stellt sich aber dann die Frage, wie bildet man das ab mit zunehmenden und abnehmenden Karten auf der Hand? Bei mir macht das Abbilden des Spielfelds die Routine 1600. Die muss man ersetzen. Die Eingabe bleibt tastaturbasiert, also "HE11" eingeben um Herz 11 zu spielen.
Möchte irgendjemand die KI oder die Petscii-Grafik übernehmen und das Programm erweitern? So ganz "dumm" im Sinne von "guck ob Farbe oder Zahl passen und spiel das aus" bekomme ich die KI auch hin. Strategien abbilden scheint mir schwieriger und ich sage mir am Anfang lieber keine KI als eine schlechte oder zu langsame. Wenn keiner mitmacht muss ich überlegen ob ich das Prgramm selber fortsetze/erweitere. Ich warte noch ein bisschen ab ob wir hier gemeinsam etwas tun und dann stelle ich das Spiel auf csdb.
@ c64 Junior:
Schau Dir den Quellcode an. Da steht auch einiges drin über das Auswerten von Strings. Ich bin da wenn Du Fragen hast. Heute am C64 wursteln ist sehr ähnlich zu dem, was junge Leute mit Arduinos und Raspberry Pis tun. Es ist das Verstehen der grundlegenden Hardware-Ebene und die ist von der Grundlogik gleich geblieben. Auch in Basic bildet man das ab durch das Setzen und Löschen von Flags und dem Verwalten von Zuständen.
@ RK Soft:
Du kannst jetzt schon auf V2 Basic portieren. Im Grunde nur die scnclrs durch print chr$(147) ersetzen, dann ist da noch eine do while loop und ein einziges if then else. Der Rest ist eigentlich V2 Basic obwohl ich mich bemüht habe, es "anders" zu machen für meinen C128. Was auch noch anders zu sein scheint ist die Bildschirmausgabe. Wenn man das C128 Prg am C64 ausführt klappt ja die Textausgabe am Anfang. Die sieht aber anders aus als im Original. Da sind Leerzeilen dazwischen die es beim C128 nicht gibt.