Wir haben einige Funktionsprototypen deklariert, die im Code in einer Sequenz verwendet werden.
Definierte einige globale Variablen und die Main () -Methode. Die Funktionen „Regeln ()“, „Schwierigkeitsgrad ()“ und „PlayOneHand ()“ werden nacheinander eine aufgerufen. Mal sehen, wie diese Funktionen funktionieren.
Die Methode „Regeln ()“ hat nichts zurückzugeben.
Die „Schwierigkeitsgrad ()“ -Methode ausführt. Mit den Anweisungen „Wenn“ wird überprüft, ob ein Benutzer 1 oder 2 eingegeben hat oder nicht. Wenn nicht, wird der Puffer aufgeräumt und diese Funktion „Schwierigkeit“ wird erneut aufgerufen, um in den Schwierigkeitsgrad einzugeben.
Nachdem der Benutzer seinen Schwierigkeitsgrad eingetragen hatte, wurde die Funktion „PlayOneHand“ ausgeführt. Es wurde eine lokale Variable "Play" entspricht "n" und dann eine "Zeichnung" -Variable in der Anweisung "Do". Das Array „Deck“ der Größe 52 wird deklariert. Die Funktion "InitializedEck" wird aufgerufen, um das "Deck" zu initialisieren, und die Funktion "Shuffle" wird verwendet, um das Deck zu mischen. Danach haben wir zwei Listen initialisiert, "PH" und "DH". Der „pH“ steht für Player Hands, während der „DH“ für die Hand des Händlers steht.
Wir haben die Funktion "Addtohand" bezeichnet, während wir die Funktion "Gettopcard" und "pH" oder "DH" -Arrays in zufälliger Reihenfolge übergeben haben. In der Funktion „Gettopcard ()“ haben wir auch das Array „Deck“ als Parameterargument bestanden. Die Cout -Aussagen zeigen, dass das Mischen durchgeführt wurde. Die Funktion „naturalblackjack“ und „Blackjack“ werden mit 3 Parametern aufgerufen, ich.e., PH, DH, Y oder Y. Die Funktion „showcards ()“ wird zwei Mal aufgerufen, um die Karten in der Hand- und Händlerhand zu zeigen. Die Funktion „Checksoftorhard“ wird aufgerufen, um den Wert einer Ace -Karte durch einen Benutzer zu ändern. Während die Funktion „UserWantStodraw“ aufgerufen wird, werden wir einige Aktionen ausführen.
Während Loop addtoHand (), showcards (), checksoftorhard (), checkbust () und Blackjack () aufruft. Die Funktion hituntilStands (), checkBust (), Blackjack (), Whowins () ist draußen, um den Sieg, den Verlust zu überprüfen und ihn anzuzeigen. Während der „Playanotherhand“ aufgerufen wird, um noch einmal zu spielen, wenn es gewollt ist.
Die Funktion „InitializedEck“ wird verwendet, um die Werte von Kartenhintergründen zu erstellen, um den Rang in der 10S -Position und den Anzug in der Position von 100S festzulegen. Sie können sehen, wir haben die für die Schleife für Herzen, Diamanten, Clubs und Spaten getrennt benutzt.
Hier kommt die „Shuffle“ -Methode, mit der die Karten zufällig neu ordnen. Dies wurde mit einer riesigen Schleife gemacht, und die Kartenklone wurden gemacht. Es wird weiter funktionieren, bis die Schleife endet und alle Karten gemischt werden.
Wir haben diese Funktion im Parameter „Addtohand“ aufgerufen. Diskutieren Sie sie also zuerst. Es hat also das "Deck" -Array in seinem Parameter genommen und alle seine Karten bis zum letzten Mal geschoben. Es wird die spezifische Karte aus dem Deck herausfinden, die nicht leer ist, und zuerst eine Kopie daraus machen. Dann wird es leer, indem der kopierte Wert ersetzt und zurückgegeben wird, ich.e., Die Variable "Topcard" zur Funktion "Addtohand".
Jetzt nimmt die Funktion „Addtohand“ die „Topcard“ aus der Funktion „Gettopcard“ und das „Hand []“ -Array, das an sie übergeben wurde, entweder ist es Händlerhand „DH“ oder Spielerhand „PH“. Wenn die Hand einen leeren Punkt für die Karte hat, ersetzt sie diesen Punkt durch den Wert "Cardtoadd", der vom Wert "Gettopcard" zurückgegeben wird.
Diese Funktion erhält die Punktzahlen von Spielern und Händlern mit PH und DH. Es wird überprüft, ob der Spieler einen Blackjack hat oder nicht. In diesem Fall wird die Funktion „Anzeigetafel“ aufgerufen, den Gewinn berechnet, die Funktion „Backdoorkenny“ und dann die Funktion „Playanotherhand“ aufrufen.
Die "Blackjack" -Funktion prüft, ob der Spieler einen Blackjack hat oder sowohl den Spieler als auch ein Händler einen Blackjack. Wenn ein Spieler Blackjack hat, nennt er die Funktion "Anzeigetafel", "BackDoorkenny" und "Playanotherhand", während die Gewinne berechnet werden. Wenn beide Blackjack haben, nennt es die Funktion „Anzeigetafel“ und „Playanotherhand“, während die Gewinne berechnet werden.
Bei den „Showcards“ geht es darum, die Kartenwerte am Terminal anzuzeigen, während das Deck für Spieler und Händler nicht leer ist.
Die Funktion „Checksoftorhard“ wird ausgeführt, um einen Benutzer zu fragen, ob er/sie möchte, dass ACE als 1 oder 11 gezählt wird. Dadurch werden wir weitere Punktzahlen oder Karten berechnen.
Der Funktion "UserWantStodraw" fordert den Benutzer auf, eine andere Karte zu zeichnen oder die Schleife zu überspringen. Wenn der Benutzer „H“ oder „H“ eintritt.
Die Funktion „checkbust“ wird aufgerufen, wenn ein Spieler oder ein Händler eine Punktzahl von 21 begegnen.
Diese Funktion „HituntilStand“ wird verwendet, um einen Händler schlagen zu lassen, während er 17 erhält. Es würde auf Anfänger oder Expertenebene dekodiert werden,
Die Funktion „Softorhardai“ wurde hier aufgerufen, um mit Bedacht zu spielen.
Hier kommt die Funktion „GetHandValue ()“, um die Werte der Karte zu summieren, indem die Werte aus der Funktion „CardValue“ abgerufen und die aktualisierten zurückgegeben werden.
Hier kommt die Funktion „CardValue“, die den Hintergrund einer Karte überprüft, um den 10S -Wert zu erhalten. Dies kann für jede Karte eingereicht werden und wird in diesem Code mehrfach aufgerufen.
Die Funktion „Anzeigetafel“ nimmt den PH und DH mit, um die aktuellen Karten des Players und des Händlers mithilfe der "showcards ()" anzuzeigen und den Kartenwert mit der Funktion "GetHandValue" anzuzeigen.
Wenn ein Benutzer eine Karte von 10 Punkten hat, während die zweite Karte "ACE" mit der Funktion „CardValue“ ist, berechnet er den Gewinn als 1: 4 -Auszahlung.
Diese Funktion wird aufgerufen, wenn wir über den Rang der aktuellen Karte und ihren Anzug wissen möchten.
Die Ränge werden mit der Anweisung "Switch" überprüft und Anzüge werden über IF-ELSE-Anweisungen überprüft.
Die Methode "Dumpdeck" wird aufgerufen, um die Deckwerte anzuzeigen.
Das „GetRandomNumber“ wurde im Programm verwendet, um eine beliebige Anzahl aus den bereitgestellten hohen und niedrigen Werten zu erhalten.
Bei dieser Funktion geht es nur um Logik, um zu überprüfen, ob der Händler ein „ACE“ hat oder nicht. In diesem Fall versucht der Händler, 21 zu erstellen und zu gewinnen.
Die Funktion „Whowins ()“ wird aufgerufen, um den Gewinner mit ihren Punktzahlen zu entscheiden.
Die Funktion von PlayAnotherHand () wird aufgerufen, um den Benutzer aufzufordern, wenn er nach einem ganzen Spiel erneut spielen möchte.
Die Zusammenstellung wird unter Verwendung des "G ++" -Compilers durchgeführt.
Die Ausführung zeigt das Blackjack -Panel. Also, hier gehst du.
Abschluss:
Dieser Artikel ist ein komplettes Bündel eines C ++ - Code, um ein Blackjack -Spiel in Ubuntu 20 zu erstellen.04. Wir haben mehr als 20 benutzerdefinierte Funktionen verwendet, um seine Funktionalität zu erreichen. Alle Funktionen sind voneinander abhängig, und wir haben versucht, die Komplexität zu minimieren, indem wir sie in einer Sequenz erklären. Wir hoffen, dass dieser ganze Artikel leicht zu verstehen ist.