Final Balckjack

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 38

TRABAJO FINAL

TITULO: 21 BLACKJACK.

DOCENTE: Violeta Isabel Castillo Villalobos.

SECCIÓN: IX42

ALUMNOS:
 Kevin Castilla Jiménez.
 Leyla Estrada Ccotarma.
 Diana Sofia Montenegro Carhuas.
 Leao Osmar Salinas Alvarez.

CURSO: Algoritmos

FECHA: 19/11/2018

1
Resumen
El presente trabajo diseñado para el curso de Algoritmos es el “Juego de
Blackjack”, cuyo origen es desconocido y uno de los juegos con mayor
popularidad en los casinos a nivel mundial. El primer objetivo del juego es ganar la
mano sin pasarse de 21, y segundo vencer al dealer o hacer que este pase el 21.
Debido a la Ley de Reordenamiento y Formalización de la Actividad de
Explotación de juegos de Casinos y Máquinas Tragamonedas, promulgada en el
año 2006, se dio un incremento del 85% en la formalización de dichos
establecimientos.
Este proyecto nace a partir de las necesidades de los jugadores, es decir con la
elaboración del algoritmo muchos de ellos podrán realizar el juego desde su
comodidad mediante la ejecución de una aplicación creada en un documento
Excel habilitado para macros. De esta manera se espera que diversos aficionados
de 21 Blackjack comprendan más acerca del juego, como la manera en la que se
juega, las estrategias, las reglas y entre otros, así podrá más adelante realizar
verdaderas apuestas en los casinos.
Palabras Clave
 Blackjack: Resultado que se obtiene al sumar dos cartas entregadas al
jugador.
 Dealer o Crupier: Persona encargada de repartir las cartas a los jugadores
 Random: Sirve para elegir una carta al azar del 1 al 52.
 Depurar: Verifica que el Ramdon no de una carta repetida.
 Redimensionado: Se usa cuando no se sabe el tamaño de las cartas que
saldrán, ya que es un juego de predicciones.

2
INDICE

1. Introducción………………………………………………………………………4
2. Marco Teórico …………………………………………………………………...5
3. Análisis y diseño de la solución………………………………………………..8
3.1Análisis de datos de entrada, salida e intermedios…………..8
3.2Modelo temático…………………………………………………11
3.3Algoritmo de solución-representación…………………………12
3.4Diseño procedimientos y funciones……………………………19
3.5Diseño interfaces de entrada y salida…………………………24
4. Implementación Visual Basic para Aplicaciones (VBA)…………………….25
5. Escenario solución………………………………………………………………31
6. Conclusiones…………………………………………………………………….32
7. Recomendaciones………………………………………………………………33
8. Bibliografía……………………………………………………………………….33
9. Apéndices y Anexos…………………………………………………………….34

3
1. Introducción:
Hoy en día, los juegos de azar que ofrecen los establecimientos de casino son
muy atractivos e interesantes para el público en general. Por ello, en la actualidad
en el Perú existen 440 salas de juegos o también referenciado como “casinos”
autorizados, esto lo precisó la Sociedad Nacional de juegos al azar (Sonaja). Con
relación a la industria de los casinos en el país, esta última va en aumento, la gran
mayoría de inversionistas en este rubro son peruanos, y realizan constantemente
mejoras y ampliaciones en las instalaciones de juego. Sin embargo, un gran sector
de personas se preguntará: ¿Qué es lo que hace atractivo estos establecimientos?
La respuesta a esto es que hoy en día el principal atractivo que ofrecen los
casinos son los juegos de azar, estos resultan muy agradables e interesantes para
el público en general, estos lugares cuentan con una amplia diversidad de juegos
como: la ruleta, rueda de la fortuna, dados, juegos de cartas, y por supuesto una
amplia gama de máquinas tragamonedas. Asimismo, uno de los juegos más
populares dentro de los casinos es el Blackjack o también llamado juego del 21, es
uno de los juegos de cartas más atractivo en los casinos de todo el mundo.
El presente trabajo consiste en elaborar un algoritmo que pueda realizar una
simulación del juego de Blackjack, por ello elegimos a Casino Luckia como el
ambiente en el que se desarrollará el trabajo. Casino Luckia es una empresa
española dedicada al juego, con servicios de casa apuestas, casino y máquinas
tragamonedas, tanto en línea como en locales presenciales 1. Se presenta una
partida de Blackjack dentro de las instalaciones con el fin de conocer si el jugador
gana o pierde en su juego. Los aspectos más importantes que intervienen por
resolver en este proyecto implica conocer las reglas del juego y todas las
restricciones que este mismo posee como, por ejemplo: la cantidad de barajas
utilizadas, cantidad de jugadores y apuestas realizadas por los jugadores. Debido
a esto, se implementa un algoritmo que permite conocer el valor obtenido por el
jugador con las condiciones específicas del juego como el hecho de pedir las
cartas necesarias para poder acercarse a los 21. Otro aspecto importante es la
formulación del algoritmo en base a una elección aleatoria de cartas sin que estos
repitan para un mejor realismo.
Para resolver el tema asignado, se ha realizado una investigación del
funcionamiento del juego en los diferentes tipos de Blackjack que existen tales
como el Blackjack americano y europeo. En este caso se eligió el americano
debido a que en el Perú tiene mayor influencia. Asimismo, se ha examinado
acerca de las cantidades máximas y mínimas que se puede apostar en los casinos
de Perú, en especial Casino Luckia; todo esto para construir el algoritmo y deducir
las variables de entrada y salida.

1
Cfr. Luckia

4
Las etapas que solucionan el problema implican el conocimiento del juego en un
casino del Perú. Para ello, se ha ingresado a la página oficial del casino para
extraer sus respectivas reglas y en base a ello, realizar el algoritmo.
La motivación para realizar este proyecto es conocer más sobre el juego y poner
en práctica los conocimientos del curso de algoritmos en la elaboración del trabajo
para construir el aplicativo en Excel. Los recursos disponibles para la realización
de este proyecto es la información que nos brinda internet, libros, computadoras,
cartas de mesa y los integrantes del grupo.
2. Marco teórico:
Este proyecto es un sistema que permite realizar un juego de cartas en
computadora. Para empezar con el juego, a continuación, se explicará en que
consiste: Dicho juego se basa en ganarle al Dealer o Crupier (persona encargada
de dirigir y organizar el juego representando al casino) con una mano que tenga
un valor mayor a la suya, pero sin excederse de 21 puntos, ya que al pasarse
habrá perdido.
Para jugar Blackjack es importante conocer el valor de cada una de las cartas. Las
cartas numeradas del 2 al 10 tienen el mismo valor que marcan, en cambio las
jotas, las reinas y los reyes valen 10 puntos, la pinta de las cartas no tiene
importancia; el “as” puede valer 1 u 11, el jugador escoge de acuerdo a que valor
le da mayor probabilidad de ganar la partida. El juego básico consta de una mesa
con capacidad para hasta 7 jugadores, y un crupier. Cada jugador tiene por
derecho a una casilla donde podrá hacer la apuesta que le plazca, siempre y
cuando se acople a los montos máximos y mínimos que tenga cada casino, se
jugará con cartas barajadas manualmente por el dealer, jugando entre 4 a 8
barajas, usando un “zapato” del que sacará las cartas conforme avance el juego.
Al principio del juego se repartirán dos cartas a cada jugador. El Dealer también se
reparte dos cartas a sí mismo, pero solo una de las cartas queda a la vista de
todos. Dependiendo del valor de tu mano y el de la carta del crupier, el jugador
deberá decidir entre las siguientes opciones:
Doblar: Poniendo una apuesta adicional a la primitiva, el dealer le sirve al jugador
una sola carta sobre las dos iniciales. Cada casino tiene regalas para esta jugada;
unos permiten doblar siempre, sean cuales sean las dos primeras cartas y en
cambio otros solo aceptan doblar si las dos primeras cartas suman 9,10 u 11.
Separar: Si te reparten dos cartas del mismo valor, puedes separar el par, recibir
una carta adicional para cada una de esas cartas, y colocar una segunda apuesta
por la nueva mano.
Asegurar/Seguro: Jugada que consiste en apostar a que el crupier obtendrá
Blackjack, cuando su primera carta es un As. Solo se puede apostar la mitad de la

5
apuesta inicial. Si el crupier obtiene Blackjack paga el jugador dos veces la
apuesta del seguro.
Rendirse: Si considera que sus dos primeras cartas no serán capaces de vencer
al dealer o crupier, rindiéndose solo le será cobrada al jugador la mitad de su
apuesta inicial.
Luego el dealer revela sus cartas, y la mano que se acerque más a 21 será la
ganadora.
 Si el valor de las cartas es exactamente 21, tienes un Blackjack y el jugador
ganará la partida sin importar las cartas del dealer, con un premio 3:2.
 Si el valor de tus cartas supera los 21 puntos, te habrás pasado y el jugador
habrá perdido su apuesta.
 Si el valor de tus cartas supera el valor de las cartas del dealer y es menor
a 21 puntos, el jugador recibirá un premio 1:1.
 Si el valor de las cartas del crupier es igual al de las del jugador, el jugador
recupera su apuesta.
Este proyecto pretende realizar en una aplicación a través de un macro Excel,
donde primeramente el jugador tendrá que realizar una apuesta y seguidamente
este recibirá 2 cartas y de la misma forma el crupier, con la diferencia que solo 1
es visible para todos. Para realizar el pedido de la siguiente carta, el usuario del
juego presiona un botón y el sistema automáticamente hace entrega de manera
aleatoria y diferente a las cartas presentes en la mesa, cuando el usuario decida
no recibir más cartas escribe la palabra “No”, de esta manera el crupier mostrará
sus cartas y al comparar los valores se conocerá quien fue el ganador. También,
se implementa la cantidad de créditos del usuario con la funcionalidad de jugar
hasta que estos sean agotados. Además, existen opciones para doblar la apuesta
o rendirse de acuerdo como se desarrolle la partida.
Esta aplicación debe enfocarse en funcionar correctamente por medio de las
validaciones de todos los datos de entrada, diseñar un interfaz de datos de
entrada y salida, la cual permita a cualquier usuario lograr comprender el
programa sin necesidad de instrucciones. El contenido a desarrollar consta de un
algoritmo con las diversas restricciones que el verdadero juego posee para
prosperar como una verdadera partida en un casino.

6
EJEMPLO:

Decisiones del
Repartición Comparación Resultados
jugador

suma:20

Dealer o
Crupier

suma: 20

Jugador recupera
su apuesta.
Caso 1

Jugador decide
pedir 1 carta. Jugador
Jugador decide decide parar y se
pedir 1 carta más. muestran
automáticamente las
cartas.

Suma: 25

¡PERDEDOR!
Caso 2
Pasó de 21.
Jugador decide Jugador decide
pedir 1 carta. Jugador
pedir 1 carta y decide
posterior a ello, parar y se muestran
pedir 1 carta más. automáticamente las
cartas.

7
Suma: 21

¡GANADOR!
Caso 3
Ganó al dealer.

Jugador decide
pedir 1 carta más. Jugador decide parar
y se muestran
Jugador decide automáticamente las
pedir 1 carta. cartas.

3. Análisis y diseño de la solución:


3.1 Análisis de datos de entrada, salida e intercambios
Datos de entrada

Nombre Tipo Descripción Rango de valores


Se usa para hacer la Cadena de texto.
pregunta si va a seguir
Rpta String
jugando o no, es de entrada
porque se ingresa el valor.
Ingreso de la apuesta mayor Mayor a 0.
Apuesta Integer a cero numérica.

Datos Intermedios

8
Nombre Tipo Descripción Rango de valores

Se usa como variable de Numero entre 1 y 52.


asignación para saber que
Random String
dato del vector () es.

Se usa para mostrar la Cualquier valor del


primera carta del dealer. vector vector (), que
VariableD String
tienen los valores de la
baraja de cartas.
Se usa para mostrar la Cualquier valor del
primera carta del jugador. vector vector (), que
VariableJ String
tienen los valores de la
baraja de cartas.
Vector donde se asigna Cadena de texto.
Vector (1 to 59) String toda la baraja.

Es el valor en número de Cadena de texto.


cada baraja. Cada número
Valor (1 to 59) String tiene igual valor, excepto el
A que puede valer 1 o
11(según el juego).
Se les asigna a todos los Cadena de texto.
vectores cero porque aún
Depurado (1 to 59) ningún dato se ha usado,
String
es para verificar que el
Random no me de otra
carta repetida.
Es el vector que se usa Cadena que de texto.
para saber que cartas le
Dealer () String
están saliendo al dealer.

Es el vector que se usa Cadena de texto.


para saber que cartas le
Jugador () String
están saliendo al jugador.

Es para saber el puntaje Mayor o igual a 0 y va


que va en el juego del aumentando.
SumaJ Integer
jugador.

Es para saber el puntaje Mayor o igual a 0 y va


que va en el juego del aumentando.
SumaD Integer
dealer.

9
Es una variable bandera Entre 0 y 1.
que indica que el random
Ok Integer
está yendo correctamente.

Mayor a 0.
Son los contadores.
x, i, j, n, t Integer

Nombre Tipo Descripción Rango de valores

Vector Aquí se almacenan todas las 2 – 52


String
Dealer () cartas aleatorias del dealer.
Aquí se almacenan todas las 2 - 52
Vector
String cartas aleatorias del dealer.
Jugador ()
Es una variable que
compara las cartas que Jugador o dealer
Ganador String
tienen el jugador y el
dealer.
Datos de Salida

10
3.2 Modelo matemático:
El presente trabajo es un juego de cartas, por lo tanto, realizar un modelo
matemático es impredecible, pero sí se puede formular el comportamiento que
este puede tener hasta que el jugador decida parar.
El contador “n” indica el número de veces que se ha repartido la carta, eso
funciona para poder agregarle el tamaño del vector. La sumaD indica el valor del
dealer de la carta obtenida. Se realiza el juego hasta que el jugador decida no
recibir más cartas ya que el blackjack tiene como objetivo llegar a la suma 21
superando al dealer. En base a ello, se empieza con el “n” la primera corrida, el “x”
es una variable que se va asignar al random cada vez que salga se redimensiona
el vector dealer porque ya se escogió un valor, no validamos si salió o no salió
porque es la primera repartición. Por consiguiente, se realiza asignar los
depurados que sirven para confirmar que todas las cartas que anteriormente
fueron repartidas y no vuelvan a repetirse nuevamente en el random debido que
no puede existir dos cartas exactamente iguales. Finalmente, se implementa un
subprograma borrar que tendrá como objetivo vaciar las celdas cada vez que se
intente iniciar el juego.

11
3.3 Algoritmo de solución: Pseudocódigo

12
13
14
15
16
17
18
3.4 Diseño de procedimientos y funciones:
Para desarrollar el algoritmo se optó por el uso de subrutinas en las variables
correspondientes a cada dato, estas subrutinas fueron elaboradas de la siguiente
manera:
En la primera parte, validamos todas las variables de entrada, intermedias y de
salida.

En la segunda parte, utilizando una subrutina nombrado Inicio (), esto nos sirve
para sacar la carta al azar sin repetir la baraja. También, validamos la apuesta con
“DO…LOPP UNTIL” para ingresar la apuesta y asignamos los datos de acuerdo a
su vector y símbolo, por ejemplo:
SIMBOLOS VBA SIMBOLOS VBA

“C” “E”

“T” “R”

19
En la tercera parte, se hace uso de la estructura “DO…LOOP UNTIL” para validar
el 1er y 2do ingreso del dealer, y de igual forma para el jugador. También se hace
uso de la condición.

20
21
En la cuarta parte, se da uso nuevamente del contador implícito “FOR…NEXT”
mostramos las cartas para el dealer y los puntajes. También, evaluamos la
condición de la sumaD1, suma D2 y ambos.

En la quinta parte, se hace uso nuevamente de un subprograma de nombre


repartir (). En esta subrutina utilizamos la estructura “DO…LOOP UNTIL” para el
jugador y dealer. En la estructura del dealer condicionamos el depurado(random) y
valor(random), a su vez se indica la posición de la carta que no debe mostrar, y de
igual forma sucede con la estructura del jugador solo que para este si se muestran
ambas caras, por ellos se indica su posición mediante “CELLS”.

22
Para finalizar con el proceso de este algoritmo se creó una subrutina de nombre
Borrar (), esto sirve para que al iniciar el juego las cartas que quedaron se
eliminen y el jugador pueda empezar nuevamente.

23
3.5 Diseño de la interfaz gráfica:
INTERFACES DE ENTRADA:

La apuesta ingresada será remunerada al final de la repartición, se compararán


ambos resultados y si el participante superó al dealer se le pagará con el 100%,
de lo contrario, perderá su apuesta.

Las cartas repartidas tanto para el participante como para el dealer se ejecuta
mediante el botón “Inicio”.

Inicio

24
La respuesta del mensaje ¿Deseas continuar? Dependerá de cada jugador.

25
INTERFACES DE SALIDA:

Se muestra las cartas(celdas) abiertas con los distintos valores de la baraja.


Como se observa el dealer presenta dos sumas distintas (14 y 24). Esto se debe
que uno es para saber la suma acumulada si el As vale 1 y el otro cuando es As
vale 11.

4. Implementación en Visual Basic para Aplicaciones (VBA)

26
27
28
29
30
31
32
5. Escenarios de solución (elegir el mejor escenario):

Decisiones del
Repartición Comparación Resultados
jugador

suma:20

Dealer o
Crupier

33
Suma: 21

Jugador
Mejor ¡BLACKJAC
escenario K!
¡GANADOR!
El jugador recibe el
par de cartas para Jugador decide
iniciar el juego. quedarse con las
cartas que obtuvo
al inicio.

 En el ejemplo realizado acerca del mejor escenario para el juego de


Blackjack, es cuando al iniciar el juego, el dealer al momento de
realizar la repartición de cartas uno de los jugadores decide
quedarse con sus primeras dos cartas y dejar que los demás
jugadores sigan sumando, y que al finalizar el juego y muestren las
cartas este jugador que paro al inicio obtenga la suma de 21 en sus
cartas, por ello se afirma que es BLACKJACK, ya que solo con sus
cartas principales obtuvo el puntaje máximo del juego.

34
6. Conclusiones:

Se concluye del proyecto que el manejo adecuado del programa puede


facilitar a los jugadores de manera que puede ser utilizada en cualquier
plataforma virtual (celular, laptop, iPad y entre otros) y dependiendo del
tiempo, lugar que el jugador escoja. Asimismo, este trabajo se orienta a
todos los jugadores o aficionados del Blackjack permitiéndoles una
herramienta que puede ser utilizada en cualquier momento. Igualmente, se
logrará aprender y mejorar las estrategias del juego para que de esta forma
el jugador gane la partida.

Para lograr el desarrollo de este trabajo se necesita de una información


básica que es comprender bien en que consiste el juego, cuales son las
reglas, la función de Dealer y el jugador, pues también elegir uno de los
múltiples casinos del Perú, ya que como bien se explicó cada uno de ellos
tiene sus propios reglamentos.

Por consiguiente, los temas que presentaron mayor importancia en la


elaboración del algoritmo fueron las estructuras selectivas y repetitivas. En
el caso de las repetitivas se hizo uso de la estructura “DO…LOOP UNTIL”
(salida controlada), esta permite que el procedimiento realice las veces
necesarias hasta que el jugador indique “NO” y finalice la partida. De igual
manera las estructuras selectivas aportaron en las validaciones de datos. El
uso de vectores en la elaboración del documento creado en Excel permite
almacenar las cartas que salen para el dealer y para el jugador, también el
Vector (1 to 59) donde se asigna el valor para todas las cartas.

Al finalizar con el trabajo concluimos que los temas aprendidos durante el


curso de algoritmos pueden ser utilizados en contextos reales. Por ello,
podemos afirmar que los temas aprendidos en el curso son de gran ayuda
para desarrollar las herramientas y aptitudes, pero para lograr este trabajo
también fue de gran utilidad investigar más vectores que nos faciliten en su
elaboración.

35
7. Recomendaciones:
Como posibles recomendaciones seria que brinden mayor información de otras
funciones que permitan realizar las validaciones simples de algunas variables y de
esta manera obtener que el algoritmo de solución sea más compacto.

8. Bibliografía (con libros):


Betsson(https://content.betsson.com/pe/casino/guias-de-juegos/blackjack-guia-
para-principiantes/) (Consulta: 23 de octubre del 2018)
Diario oficial del bicentenario El Peruano (2016).
(https://busquedas.elperuano.pe/normaslegales/autorizan-y-registran-la-
modalidad-de-juego-de-casino-denomi-resolucion-directoral-no-1949-2016-
minceturvmtdgjcmt-1401038-1/) (Consulta: 23 de octubre del 2018)
Casino (http://www.casino.es/blackjack/como-jugar-blackjack/) (Consulta: 23 de
octubre del 2018)
Luckia(https://www.luckia.es/ayuda/legal/reglas-casino) (Consulta: 23 de octubre
del 2018)
ORTIZ TREVIO, Pablo (2016) El Libro del Balckjack. En: CreateSpace
Independent Publishing Platform. (Consulta: 23 de octubre del 2018)

36
9. Apéndices y/o anexos:
Si el curso fuese más extenso, podríamos utilizar muchas más herramientas
que nos brinda Excel como Userform que sirve para ejecutar operaciones
como el registro, eliminación o actualización de datos existentes en el
programa Excel. Por ello se anexa un algoritmo más avanzado, en donde se
observa el uso de las cartas dentro del programa Excel y otros vectores.
Asimismo, este trabajo es el objetivo que tenemos como grupo, pues nos
incentiva a investigar sobre el uso de sus funciones, vectores, entre otros
utilizados en su algoritmo.

Botón “PLAY” da inicio a la partida y “RESET” para borrar las cartas que salieron.

37
Mensaje indica que el jugador excedió la suma de 21.

Mensaje indica que el jugador gana la partida.

38

También podría gustarte