Ist es möglich ein BlackJack Spiel einzubauen? Wenn ja wie geht das?
Generell kannst du so ziemlich alles mit dem Maker bauen.
Kritzel dir am besten den Spielablauf eines Black Jack-Spiels auf Papier auf.
Das ganze wird auf eine große Schleife (den Gameloop) hinauslaufen, in dem die verschiedenen Phasen abgehandelt werden. Zuallererst würde ich die Regeln zusammenbauen, um die Darstellung kümmerst du dich am besten zum Schluss.
Ich habe selber keinen Plan von Black Jack, xoax hat ein Tutorial für c++, daran kannst du dich vielleicht orientieren.
ich würde es lassen. so etwas ist zwar prinzipiell möglich, aber alleine das karten aus deinem stapel genommen werden wird dir schon stärkere probleme machen.
Willst du ein Black Jack so richtig mit Karten und Kram oder eine abgespeckte "Minispiel"-Variante, bei der die Zahlen /Vari-Werte lediglich als Zahl in einer Message angezeigt werden? Prinzipiell geht beides, zweiteres ist nur ungleich leichter zu bewerkstelligen.
EDIT: ehm, leude? hattn wir in der Sektion "Datenbank" auf der Startseite nicht auch mal Tutorials rumfahren? Wo sind die hingekommen? also ich mein damit "Demo"-Spielchen, die zB erklären wie ein Shopsystem funktioniert etc. ich erinnere mich, dass da auch mal was für Kartenspiele dabei war.
Geändert von TwoFace (10.06.2013 um 13:29 Uhr)
an sich ist das alles kein hexenwerk, hätte grade sogar lust sowas zusammen zu basteln :P
mal gucken, was sich machen lässt![]()
Technisch ist das eigentlich kein großes Ding. Man braucht halt genug Abfragen und muss beim Ziehen wissen, ob die gezogene Karte noch verfügbar ist. Mit viel Fleißarbeit ist das kein Ding, eventuell kriegt man auch eine elegante Lösung hin, die nicht aus 208 if-Abfragen besteht.
Bedenke: in Casinos wird heute mit mehr als einem Deck gespielt, wenn ich mich nicht irre sogar mit 4 oder 5, um das Kartenzählen möglichst zu verhindern.
Schwieriger stelle ich es mir da eigentlich vor, die KI vernünftig zu programmieren. Man kann natürlich die Gegner einfach simpel nach einem Schema-F spielen lassen, aber ob das auf Dauer für den nötigen Spielspaß sorgt...
ach, hab mal keine so großen Erwartungen. Letzendlich wird das ganze bloß ein Konstrukt aus einem array (um die karten per index anzusprechen) und dem Modulo (um zu prüfen, welchen Wert sie hat).
Dabei werden die Variabeln mit dem entsprechenden Index einfach auf 0 (im Deck), 1 (der Dealer hat) oder 2 (der Spieler hat sie) gesetzt. Mit dem Modulo Operator finde ich dann ganz einfach heraus, welchen Wert sie hat.
Also, es gibt 13 verschiedene Karten je "Farbe", also nutzen wir Modulo 13.
Sagen wir also, Index 25 wurde gezogen:
25/13 = 1 Rest 12.
Demnach hat die gezogene Karte den Wert 12, ist also die Dame (11 = Bube, 12 = Dame, 13 = König). Bei 1 (Ass) hätte man die Wahl ob die Karte 1 oder 11 Punkte wert sein soll, kommt aber erst später bei der Berechnung zum Tragen.
Da ich jetzt keine Lust habe, mir irgendwelche Bilder anzuzeigen und solchen Schnickschnack, und ich mal wieder merke, wie beschränkt der Maker doch ist, stelle ich das hiermit ein!
Nochmal kurz gefasst. Wir reservieren uns die Variabeln mit dem Index von 1 - 52 (13 Karten je Farbe, 4 Farben, möchte man mit mehreren Decks spielen, muss man das komplette Set multiplizieren. Mit 2 Decks also 1-104, mit 3 Decks 1-156, usw). Diese werden vor jeder Runde genullt (auf 0 gesetzt), damit keine Rückstände übrig bleiben. Soll jetzt eine Karte gezogen werden, generieren wir uns eine Zufallszahl zwischen 1-x (52*Anzahl der Decks). Das ist unser Kartenindex. Mit diesem Index schauen wir dann nach, ob die Variabel noch auf 0 steht (ist noch im Deck), wenn nicht, generieren wir uns eine neue Zufallszahl, bis wir eine Karte gefunden haben (Schleife).
Nachdem das geschehen ist, gehen wir einfach durch die ganzen Variabeln durch, und rechnen zusammen, welche Variabeln auf 1 und welche auf 2 stehen. Wenn einer über 21 ist, hat derjenige verloren (kann man noch optimieren), wenn nicht über 21 Fragen, ob man noch eine Karte möchte. Wenn beide verneinen, aufdecken, zusammenzählen und vergleichen
Wie man die Werte ermittelt, habe ich ja oben bereits beschrieben.
Das wäre zumindest so mein erster Ansatz, wie ich sowas über die Maker Möglichkeiten umsetzen würde. In c++ wäre das nicht mehr als ein 20Zeiler :P
mfg
Geändert von DNKpp (10.06.2013 um 23:51 Uhr)
Warum dann nicht per DynRPG?^^
Wobei dein Ansatz wirklich interessant klingt und ja, sowas direkt im Maker abzubilden ist vielleicht ein wenig aufwändig, aber alles andere als unmöglich. Und um lange Skriptsequenzen zu realisieren, kann man sich auch per RMEventFactory behelfen^^
PeAcE
MorDen
Weil es für mich tatsächlich interessant war, das ganze per RM zu machen. Bin dann aber doch etwas zu demotiviert dafür :P
Kann ich verstehen^^ Manchmal hat es schon was, wenn man versucht etwas mit beschränkten Mitteln zu realisieren.
Nur ist dem Threadersteller damit ja immernoch nicht geholfen^^ Deshalb dachte ich, dass ein DynRPG-Plugin da helfen könnte xD
PeAcE
MorDen
Er hat doch gefragt, wie sowas geht, und das habe ich versucht zu erklären
Nach ner vorgefertigten Lösung hatte er ja nicht gefragt.
Stimmt auch wieder.
Wobei sone Kartenspielsammlung als RM2k/3-Game sicher mal interessant wäre^^
PeAcE
MorDen
Weil ich heute ein wenig Zeit hatte, habe ich mich mal an ein Black Jack Spiel in einfacher Variante gesetzt.![]()
http://www.multimediaxis.de/threads/...Viva-las-Vegas
Da ich es grade nicht downloaden kann, frage ich hier einfach mal, wie du das technisch gelößt hast![]()
Quelltext kann ich dir leider gerade auch nicht hier reinposten, da ich selber aktuell nicht die Möglichkeit habe das Spiel auf einem Maker zu öffnen.
Habe für die Überprüfung welche Karte gezogen wurde deine Methode gewählt, mit Modulo 13. Mit dem DestinyPatcher und der beigefügten Skriptsprache war es dann auch vom Aufwand überschaubar, da damit ja vernünftige Schleifen möglich sind und man für die Darstellung z.b. auch bei Bildnamen einen String mit anhängen kann oder auch variablen sehr viel einfacher ändern, ohne immer abfragen zu müssen, wer am Zug ist usw.
Achso, also doch gecheated :P
Mit entsprechenden Patches ist das natürlich vom Aufwand her wirklich kein Kunststück.
Achja, es ging mir letztlich nicht darum, das mit limitierten Mitteln zu lösen, sondern allgemein zu basteln.![]()
Geändert von Thuin8 (12.06.2013 um 15:16 Uhr)