Zbuduj grę Blackjack w C ++

Zbuduj grę Blackjack w C ++
Blackjack to dość słynna na świecie gra bankowa grana na całym świecie codziennie. Jest pomiędzy graczem a sprzedawcą (nie innego gracza). Gracz używał swoich kart z dealerami. Gracz musi pokonać sprzedawcę z pewnymi zasadami już ustalonymi. Trzy rzeczy zdefiniują wygraną gracza. Gracz musi pokonać sprzedawcę, zdobywając 21 punktów na pierwszych 2 kartach, i.mi., naturalny lub blackjack. Innym jest uzyskanie wyższego wyniku w końcu. Trzeci to pozwolenie na przeciwne narysowanie dodatkowych kart. Ten przewodnik pokaże tworzyć grę Blackjack w C ++ w Ubuntu 20.04 System. Rozpoczęliśmy nasz program od niezbędnych plików nagłówka.

Zadeklarowaliśmy niektóre prototypy funkcji, które będą używane w kodzie w sekwencji.

Zdefiniowano niektóre zmienne globalne i metodę main (). Funkcje „reguły ()”, „trudne ()” i „playonehand ()” będą nazywane jednym po drugiej. Zobaczmy, jak działają te funkcje.

Metoda „Zasady ()” nie ma nic do powrotu, ponieważ pokazuje zasady gry, zasady punktu zwycięstwa i poziomy trudności dla łatwości gracza za pomocą klauzul „cout”.

Metoda „trudności ()” wykonuje poziom trudności od użytkownika, gdy wejdzie on 1 lub 2. Instrukcje „jeśli” są używane do sprawdzenia, czy użytkownik wprowadził 1 lub 2, czy nie. Jeśli nie, bufor zostanie oczyszczony, a ta funkcja „trudność” zostanie ponownie wywołana, aby wprowadzić poziom trudności.

Po tym, jak użytkownik wejdzie na poziom trudności, wykonano funkcję „Playonehand”. Zadeklarował lokalną zmienną „odtwarzanie” równa się „n”, a następnie zmienną „narysuj” w instrukcji „do”. Tablica „pokładu” rozmiaru 52 jest zadeklarowana. Funkcja „inicjalizowana” jest wywoływana w celu zainicjowania „pokładu”, a funkcja „tasowanie” służy do przetasowania pokładu. Następnie zainicjowaliśmy dwie listy, „pH” i „DH”. „PH” oznacza ręce gracza, podczas gdy „DH” oznacza rękę dealera.

Nazwaliśmy funkcję „addToHand”, przekazując ją funkcją „getTopcard” i tablic „pH” lub „DH” w losowej kolejności. W funkcji „getTopcard ()” przekazaliśmy również tablicę „pokładu” jako argument parametrów. Oświadczenia cout pokazują, że tasowanie zostało wykonane. Funkcja „NaturalBlackjack” i funkcja „blackjack” są wywoływane z 3 parametrami, i.mi., Ph, DH, Y lub Y. Funkcja „Showcards ()” jest nazywana 2 razy, aby pokazać karty w ręce gracza i dealera. Wywoływana jest funkcja „ChecksOoftorHard”, aby zmienić wartość karty ACE przez użytkownika. Podczas gdy wywoływana jest funkcja „userWantStodraw”, będziemy wykonywać niektóre działania.

Podczas gdy pętla dzwonią do addToHand (), showcards (), checksOFORHARD (), CheckBust () i blackjack () funkcja. Funkcja HitunTilstands (), ChectBust (), blackjack (), Whowins () jest na zewnątrz, aby sprawdzić wygraną, stratę i wyświetlić ją. Podczas gdy „Playanotherhand” jest powołany do ponownego gry, jeśli chce.

Funkcja „inicjalizowane” służy do budowy wartości tła kart, aby ustawić ranga w pozycji 10s i garnitur w pozycji 100s. Możesz zobaczyć, użyliśmy pętli dla serc, diamentów, klubów i pik osobno.

Oto metoda „losowania”, która jest używana do losowego układu kart. Dokonano tego z ogromną zapętlaniem, a klony kart zostały wykonane. Będzie działał do momentu zakończenia pętli, a wszystkie karty zostaną potrącone.

Nazwaliśmy tę funkcję w parametrze funkcji „addtohand”, więc najpierw omów ją. Tak więc wziął tablicę „pokładu” w swoim parametrze i zapętlił wszystkie swoje karty do ostatniej. Odkryje konkretną kartę z pokładu, która nie jest pusta i najpierw wykonuje kopię. Następnie sprawi, że będzie to puste, zastępując i zwracając skopiowaną wartość, i.mi., zmienna „topcard”, do funkcji „addtohand”.

Teraz funkcja „AddToHand” ma „topcard” powróconą z funkcji „getTopcard” oraz tablicy „ręki []”, która została przekazana do niej albo jest ręką dealera „DH” lub „PH” gracza „pH”. Jeśli ręka ma puste miejsce dla karty, zastąpi to miejsce na wartość „CardToadd” zwrócona z wartości „getTopcard”.

Ta funkcja otrzyma dziesiątki graczy i dealerów za pomocą pH i DH. Sprawdza, czy gracz ma blackjack, czy nie. Jeśli tak, wywoła funkcję „tablicy wyników”, obliczy zwycięstwo, wywołać funkcję „Backdoorkenny”, a następnie funkcję „Playanotherhand”.

Funkcja „Blackjack” sprawdzi, czy gracz ma blackjacka, czy zarówno gracz, jak i dealer ma blackjack. Jeśli gracz ma Blackjacka, zadzwoni do funkcji „tablica wyników”, „Backdoorkenny” i „Playanotherhand” podczas obliczania wygranych. Jeśli obaj mają Blackjacka, wywoła funkcję „tablicę wyników” i „Playanotherhand”, obliczając wygrane.

„Prezentacje” polega na pokazaniu wartości karty na terminalu, podczas gdy pokład nie jest pusty dla graczy i dealerów.

Funkcja „CheckSoftorHard” zostanie wykonana, aby zapytać użytkownika, czy chce, aby Ace został liczony jako 1 lub 11. Dzięki temu obliczymy kolejne wyniki lub karty.

Wywołanie funkcji „userWantStodraw” prosi użytkownika o narysowanie innej karty lub pominięcie pętli. Jeśli użytkownik wejdzie „H” lub „H”, oznacza to, że gra jeszcze raz, lub zostanie pominięty.

Funkcja „CheckBust” jest wywoływana, gdy gracz lub sprzedawca napotyka wynik 21.

Ta funkcja „Hituntilstand” zostanie wykorzystana, aby pozwolić dealerowi uderzyć, gdy otrzyma 17. Zostałby dekodowany na poziomie początkujących lub ekspertów,

Funkcja „softorhardai” została tu powołana do mądrego grania.

Oto funkcja „gethandValue ()”, aby sumować wartości karty, uzyskując wartości z funkcji „wartości cardValue” i zwracając zaktualizowaną.

Oto funkcja „wartości cardValue”, która sprawdza tło karty, aby uzyskać wartość 10s. Można to wezwać do dowolnej karty i zostanie ona nazywana wiele razy w tym kodzie.

Funkcja „tablica wyników” wymaga pH i DH, aby wyświetlić aktualne karty odtwarzacza i dealera za pomocą „showcards ()” i wyświetla wartość karty za pomocą funkcji „GethandValue”.

Gdy użytkownik ma 1 kartę 10 punktów, podczas gdy druga karta to „ACE”, używając funkcji „CardValue”, obliczy swoją wygraną jako wypłatę 1: 4.

Ta funkcja jest wywoływana, gdy chcemy wiedzieć o randze obecnej karty i jej garniturze.

Rangi są sprawdzane z instrukcją „przełącz”, a garnitury są sprawdzane za pośrednictwem instrukcji IF-Else.

Metoda „zrzucania” zostanie wywołana w celu wyświetlania wartości pokładu.

„GetRandomNumber” został wykorzystany w programie, aby uzyskać dowolną liczbę z dostarczonych wysokich i niskich wartości.

Ta funkcja dotyczy logiki, aby sprawdzić, czy sprzedawca ma „as”, czy nie. Jeśli tak, sprzedawca spróbuje stworzyć 21 i wygrać.

Funkcja „Whowins ()” zostanie wezwana, aby zdecydować o zwycięzcy za pomocą ich wyników.

Funkcja PlayAnotherHand () jest wywoływana, aby zachęcić użytkownika, jeśli chce grać ponownie po jednej całej grze.

Kompilacja jest wykonywana za pomocą kompilatora „G ++”.

Wykonanie pokazuje panel Blackjack. Więc proszę bardzo.

Wniosek:

Ten artykuł jest kompletnym pakietem kodu C ++ do utworzenia gry Blackjack w Ubuntu 20.04. Wykorzystaliśmy ponad 20 funkcji zdefiniowanych przez użytkownika, aby osiągnąć jego funkcjonalność. Wszystkie funkcje są współzależne i staraliśmy się zminimalizować złożoność, wyjaśniając je w sekwencji. Mamy nadzieję, że ten cały artykuł będzie łatwy do zrozumienia.