Abbiamo dichiarato alcuni prototipi di funzione che verranno utilizzati nel codice in una sequenza.
Definito alcune variabili globali e il metodo principale (). Le funzioni "regole ()", "difficoltà ()" e "playonehand ()" saranno chiamate una dopo l'altra. Vediamo come funzionano queste funzioni.
Il metodo "Rules ()" non ha nulla da restituire perché dimostra le regole del gioco, le regole del punto vincente e i livelli di difficoltà per la facilità del giocatore usando le clausole "Cout".
Il metodo "Difficoltà ()" esegue ottenere il livello di difficoltà da un utente quando entra 1 o 2. Le istruzioni "if" vengono utilizzate per verificare se un utente ha inserito 1 o 2 o meno. In caso contrario, il buffer verrà ripulito e questa funzione "difficoltà" verrà nuovamente chiamata per entrare nel livello di difficoltà.
Dopo che l'utente ha inserito il suo livello di difficoltà, la funzione "Playonehand" è stata eseguita. Ha dichiarato una variabile locale "play" equivale a "n" e quindi una variabile "disegna" nell'istruzione "do". Il "mazzo" dell'array di dimensioni 52 è dichiarato. La funzione "inizializeck" è chiamata per inizializzare il "mazzo" e la funzione "shuffle" viene utilizzata per mescolare il mazzo. Successivamente, abbiamo inizializzato due elenchi, "pH" e "dh". Il "pH" rappresenta le mani del giocatore mentre il "DH" sta per la mano del commerciante.
Abbiamo chiamato la funzione "aggiunta" mentre la passiamo la funzione "gettopcard" e array "pH" o "dh" in ordine casuale. Nella funzione "gettopcard ()", abbiamo anche superato l'array "mazzo" come argomento dei parametri. Le dichiarazioni di Cout mostrano che lo shuffling è stato fatto. La funzione "Naturalblackjack" e la funzione "blackjack" sono chiamate con 3 parametri, i.e., ph, dh, y o y. La funzione "Showcards ()" si chiama 2 volte per mostrare le carte in Player and Dealer Hand. La funzione "CheckSoftorhard" è chiamata per modificare il valore di una scheda ACE da parte di un utente. Mentre viene chiamata la funzione "UserWantStoDraw", eseguiremo alcune azioni.
Mentre loop chiama addTohand (), showcards (), checkSoftorhard (), checkBust () e blackJack (). La funzione HitUnTilStands (), checkBust (), BlackJack (), Whowins () è esterno per controllare la vittoria, la perdita e visualizzarla. Mentre il "Playanotherhand" viene chiamato a giocare ancora una volta se lo desidera.
La funzione "Initializeck" viene utilizzata per creare i valori degli sfondi delle carte per impostare il grado nella posizione 10S e la tuta nella posizione di 100s. Puoi vedere, abbiamo usato il ciclo per cuori, diamanti, club e picche separatamente.
Ecco che arriva il metodo "shuffle", che viene utilizzato per riorganizzare le carte in modo casuale. Questo è stato fatto con un enorme loop e i cloni di carta sono stati fatti. Continuerà a funzionare fino al termine del ciclo e tutte le carte vengono mescolate.
Abbiamo chiamato questa funzione nel parametro della funzione "AddTtohand", quindi discuta prima. Quindi, ha preso l'array "mazzo" nel suo parametro e ha fatto il giro di tutte le sue carte fino all'ultima. Scoprirà la scheda specifica dal mazzo che non è vuota e ne farà prima una copia. Quindi, lo renderà vuoto sostituendo e restituendo il valore copiato, i.e., La variabile "topcard", alla funzione "aggiunta".
Ora, la funzione "Aggiunta" prende la "topcard" restituita dalla funzione "gettopcard" e l'array "Hand []" che è stato passato ad esso è la mano del rivenditore "DH" o la mano del giocatore "pH". Se la mano ha un punto vuoto per la scheda, sostituirà quel punto con il valore "CardToADD" restituito dal valore "gettopcard".
Questa funzione otterrà i punteggi di giocatori e rivenditori che usano PH e DH. Sta controllando se il giocatore ha un blackjack o no. In tal caso, chiamerà la funzione "segnapunti", calcola la vittoria, chiama la funzione "backdoorkenny" e quindi la funzione "playanotherhand".
La funzione "Blackjack" controllerà se il giocatore ha un blackjack o sia il giocatore che un rivenditore ha un blackjack. Se un giocatore ha il blackjack, chiamerà la funzione "segnapunti", "backdoorkenny" e "playanotherhand" mentre calcola le vincite. Se entrambi hanno il blackjack, chiamerà la funzione "segnapunti" e "playanotherhand" durante il calcolo delle vincite.
Le "showcards" consiste nel mostrare i valori della carta al terminale mentre il mazzo non è vuoto per giocatori e rivenditori.
La funzione "CheckSoftorhard" verrà eseguita per chiedere a un utente se desidera che Ace venga conteggiato come 1 o 11. Attraverso questo, calcoleremo ulteriori punteggi o carte.
La funzione di funzione "UserWantStoDraw" chiedi all'utente di disegnare un'altra scheda o saltare il loop. Se l'utente inserisce "H" o "H", significa giocare ancora una volta, oppure verrà saltato.
La funzione "CheckBust" viene chiamata quando un giocatore o un commerciante incontra un punteggio di 21.
Questa funzione "HituntStand" verrà utilizzata per far colpire un commerciante mentre ne ottiene 17. Sarebbe decodificato a livello di principianti o esperti,
La funzione "softhardai" è stata chiamata qui per suonare saggiamente.
Ecco che arriva la funzione "gethandvalue ()" per sommare i valori della scheda ottenendo i valori dalla funzione "CardValue" e restituendo quello aggiornato.
Ecco che arriva la funzione "CardValue", che controlla lo sfondo di una scheda per ottenere il suo valore 10S. Questo può essere chiamato per qualsiasi carta e verrà chiamato molte volte in questo codice.
La funzione "Takboard" prende PH e DH per visualizzare le schede attuali del giocatore e del rivenditore utilizzando la "Showcards ()" e visualizzare il valore della scheda usando la funzione "GethandValue".
Quando un utente ha 1 scheda di 10 punti mentre la seconda carta è "Ace", utilizzando la funzione "CardValue", calcolerà la sua vittoria come pagamento 1: 4.
Questa funzione si chiama quando vogliamo conoscere il rango della carta attuale e la sua tuta.
I ranghi vengono controllati con l'istruzione "switch" e le tute vengono controllate tramite le istruzioni IF-ELSE.
Il metodo "dumpdeck" verrà chiamato per visualizzare i valori del mazzo.
Il "getRandomnumber" è stato utilizzato nel programma per ottenere qualsiasi numero dai valori alti e bassi forniti.
Questa funzione riguarda la logica da verificare se il rivenditore ha un "asso" o no. In tal caso, il rivenditore proverà a creare 21 e vincere.
La funzione "Whowins ()" sarà chiamata per decidere il vincitore usando i loro punteggi.
La funzione PlayAnotherhand () è chiamata a chiedere l'utente se vuole giocare di nuovo dopo un intero gioco.
La compilation viene eseguita utilizzando il compilatore "G ++".
L'esecuzione mostra il pannello blackjack. Quindi, eccoti.
Conclusione:
Questo articolo è un pacchetto completo di un codice C ++ per creare un gioco Blackjack in Ubuntu 20.04. Abbiamo utilizzato più di 20 funzioni definite dall'utente per ottenere la sua funzionalità. Tutte le funzioni sono interdipendenti e abbiamo cercato di ridurre al minimo la complessità spiegandole in una sequenza. Speriamo che l'intero articolo sia facile da capire.