Construye un juego de blackjack en C ++

Construye un juego de blackjack en C ++
Blackjack es el juego bancario bastante famoso del mundo jugado en todo el mundo diariamente. Está entre un jugador y un distribuidor (no otro jugador). Un jugador solía comparar sus cartas con los distribuidores. El jugador tiene que derrotar al distribuidor con algunas reglas ya. Tres cosas definirán la victoria del jugador. El jugador debe derrotar al distribuidor obteniendo los 21 puntos en las primeras 2 cartas, yo.mi., Natural o Blackjack. Otro es obtener una puntuación más alta al final. El tercero es dejar que el opuesto dibuje cartas adicionales. Esta guía le mostrará que cree un juego de blackjack en C ++ dentro de Ubuntu 20.04 sistema. Hemos comenzado nuestro programa con los archivos de encabezado necesarios.

Hemos declarado algunos prototipos de funciones que se utilizarán en el código en una secuencia.

Definió algunas variables globales y el método main (). Las funciones "reglas ()", "dificultad ()" y "playOneHand ()" se llamarán una tras otra. Veamos cómo funcionan estas funciones.

El método "reglas ()" no tiene nada que regresar porque demuestra las reglas del juego, las reglas del punto ganador y los niveles de dificultad para la facilidad del jugador usando las cláusulas "Cout".

El método "dificultad ()" se ejecuta obtiene el nivel de dificultad de un usuario cuando entra 1 o 2. Las declaraciones "si" se utilizan para verificar si un usuario ha ingresado 1 o 2 o no. Si no, el búfer se limpiará, y se volverá a llamar a esta función "dificultad" para ingresar al nivel de dificultad.

Después de que el usuario ingresa a su nivel de dificultad, la función "playOnehand" se ejecutó. Declaró una variable local "Play" es igual a "N" y luego una variable de "dibujar" en la declaración "hacer". La matriz "mazo" del tamaño 52 se declara. Se llama a la función "Inicializedeck" para inicializar el "mazo", y la función "Shuffle" se usa para barajar el mazo. Después de eso, hemos inicializado dos listas, "PH" y "DH". El "pH" significa las manos del jugador, mientras que el "DH" representa la mano del concesionario.

Hemos llamado a la función "addtohand" al pasar la función "getTopCard" y las matrices de "pH" o "dh" en orden aleatorio. En la función "getTopCard ()", también hemos pasado la matriz "Deck" como argumento de parámetros. Las declaraciones de cout muestran que se ha hecho el barajamiento. La función "NaturalBlackJack" y la función "Blackjack" se llaman con 3 parámetros, I.mi., ph, dh, y o y. La función "showcards ()" se llama 2 veces para mostrar las cartas en la mano del jugador y el concesionario. La función "CheckSoftorHard" está llamada para cambiar el valor de una tarjeta ACE por un usuario. Mientras se llama a la función "userwantstodraw", realizaremos algunas acciones.

Mientras que Loop llama a la función AddToHand (), showCards (), checkSoftorHard (), checkbust () y blackjack (). La función hituntilstands (), checkbust (), blackjack (), whowins () está afuera para verificar la victoria, la pérdida y la pantalla. Mientras que el "playanotherhand" está llamado a jugar una vez más si se quiere.

La función "Inicializedeck" se utiliza para construir los valores de los fondos de las tarjetas para establecer el rango en la posición 10S y el traje en la posición de los 100. Puedes ver, hemos usado el bucle para corazones, diamantes, clubes y espadas por separado.

Aquí viene el método "Shuffle", que se está utilizando para reorganizar las cartas al azar. Esto se ha hecho con un enorme bucle, y los clones de la tarjeta se han hecho. Continuará funcionando hasta que termine el bucle y todas las tarjetas se barajen.

Hemos llamado a esta función en el parámetro de la función "addtoHand", así que discúblalo primero. Entonces, ha estado tomando la matriz de "mazo" en su parámetro y recorriendo todas sus cartas hasta la última. Descubrirá la carta específica del mazo que no está vacía y hará una copia primero. Luego, lo hará vacío reemplazando y devolviendo el valor copiado, yo.mi., la variable "Topcard", a la función "AddToHand".

Ahora, la función "addtohand" toma la "tarjeta superior" devuelta de la función "getTopCard", y la matriz "manual []" que se ha transmitido, o es la mano del concesionario "dh" o la mano del jugador "ph". Si la mano tiene un lugar vacío para la tarjeta, reemplazará ese lugar con el valor "CardToadd" devuelto del valor "GetTopCard".

Esta función obtendrá las decenas de jugadores y distribuidores utilizando pH y DH. Está comprobando si el jugador tiene un blackjack o no. Si es así, llamará a la función de "marcador", calcule la ganadora, llame a la función "backdoorkenny" y luego la función "playanotherhand".

La función "blackjack" verificará si el jugador tiene un blackjack o el jugador y un concesionario tienen un blackjack. Si un jugador tiene blackjack, llamará a la función del "marcador", "backdoorkenny" y "playanotherhand" al calcular las ganancias. Si ambos tienen blackjack, llamará a la función "marcador" y "playanotherhand" al calcular las ganancias.

Las "showcards" se trata de mostrar los valores de la carta en la terminal, mientras que el mazo no está vacío para los jugadores y los distribuidores.

La función "CheckSoftorHard" se ejecutará para preguntarle a un usuario si quiere que Ace se cuente como 1 o 11. A través de esto, calcularemos más puntajes o tarjetas.

La función de la función "UserWantStodraw" solicite al usuario que dibuje otra tarjeta o omita el bucle. Si el usuario ingresa a "H" o "H", significa jugar una vez más, o se omitirá.

La función de "verificación" se llama cuando un jugador o un concesionario se encuentra con un puntaje de 21.

Esta función "hituntilstand" se utilizará para dejar que un distribuidor golpee mientras obtiene 17. Se decodificaría a nivel principiante o experto,

La función "Softorhardai" ha sido llamada aquí para jugar sabiamente.

Aquí viene la función "gethandValue ()" para sumar los valores de la tarjeta obteniendo los valores de la función "CardValue" y devolviendo el actualizado.

Aquí viene la función "CardValue", que verifica el fondo de una tarjeta para obtener su valor 10S. Esto se puede solicitar para cualquier tarjeta, y se llamará muchas veces en este código.

La función "ScoreBoard" toma pH y DH para mostrar las cartas actuales del jugador y el concesionario usando "showCards ()" y mostrar el valor de la tarjeta utilizando la función "gethandValue".

Cuando un usuario tiene 1 tarjeta de 10 puntos, mientras que la segunda tarjeta es "as", utilizando la función "CardValue", calculará su ganancia como un pago de 1: 4.

Esta función se llama cuando queremos saber sobre el rango de la tarjeta actual y su traje.

Los rangos se verifican con la declaración "Switch", y los trajes se verifican a través de declaraciones IF-Else.

Se llamará al método "dumpdeck" para mostrar los valores de la cubierta.

El "getrandomNumber" se ha utilizado en el programa para obtener cualquier número de valores altos y bajos proporcionados.

Esta función se trata de lógica para verificar si el distribuidor tiene un "as" o no. Si es así, el distribuidor intentará crear 21 y ganar.

La función "WHOWINS ()" será llamada para decidir el ganador utilizando sus puntajes.

Se llama a la función PlayanotherHand () para solicitar al usuario si quiere jugar una vez más después de un juego completo.

La compilación se realiza utilizando el compilador "G ++".

La ejecución muestra el panel de blackjack. Entonces, aquí vas.

Conclusión:

Este artículo es un paquete completo de un código C ++ para crear un juego de blackjack en Ubuntu 20.04. Hemos utilizado más de 20 funciones definidas por el usuario para lograr su funcionalidad. Todas las funciones son interdependientes, y hemos tratado de minimizar la complejidad explicándolas en una secuencia. Esperamos que todo este artículo sea fácil de entender.