Está en la página 1de 5

Facultad de Ciencias Fsicas y Matemticas

Universidad de Concepcin

Tarea Lenguaje de Programacin

Martn Soto
Matas Luengo
Sergio Carrasco
24 de Junio 2016, Concepcin

ndice
1. Objetivo
1.1. Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3
3

2. Anlisis del Problema


2.1. Funcin Carta Alta . .
2.2. Funcin Par . . . . . .
2.3. Funcin Doble Par . .
2.4. Funcin Trio . . . . . .
2.5. Funcin Escalera . . .
2.6. Funcin Full . . . . . .
2.7. Funcin Poker . . . . .
2.8. Funcin Escalera Real

3
3
3
3
4
4
4
4
4

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

3. Abordaje del Problema

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

1. Objetivo
El objetivo de este problema es hacer que un jugador de Poker, estilo Texas, que est en la final del Mundial de
Poker que se realiza una vez cada mil aos, saque la mejor mano sabiendo las cartas que tiene en la mano y las 5
siguientes que estan en la Baraja, Y eso el Dealer no lo sabe!.

1.1. Problema
Nuestro fin practico es hacer un programa en Lenguaje de Programacin C que ayude a este individuo a salir
campen, para ello tendremos una distribucin dada por el usuario y nuestro programa har que, segun la secuencia
dada, el jugador descarte sus peores cartas y tome de la baraja el mismo numero de cartas y genere la mejor mano y
nuestro cliente gane.

2. Anlisis del Problema


Para este programa hemos visto que necesitamos dos bibliotecas adems de la que siempre ocupamos "stdio.h",
estas son "string.h"la cual contiene un conjunto de funciones para manipular cadenas: copiar, cambiar caracteres,
comparar cadenas, etc. y adems la biblioteca "stdlib.h"la cual nos permite Aritmticas Nmeros aleatorios y Conversin de cadenas entre otros.
Adems necesitaremos de una funcin que genere un documento .txt llamado "data.txt.el cual guardar nuestras
jugadas. El proceso consiste en efectuar una serie de funciones las cuales determinarn si las condiciones de las jugadas se cumplen al momento de ejecutar el programa. Las funciones citadas son de orden jerrquico y las veremos a
continuacin:

2.1. Funcin Carta Alta


Esta funcin se desarrolla gracias al intercambio de cartas segun su posicin, es decir, el programa analiza las 10
cartas propuestas y va intercambiando las menores de las 5 primeras con las mayores de las 5 restantes, dejando as
la mano con las cartas ms altas. Este es el ltimo escaln en trminos del juego y es la ltima opcin para ganar. Esta
funcin es de tipo void y no retorna un valor, ya que est en la ltima posicion de nuestra lista de resultados:
Ejemplo
Entrada: 8C 2T 5D 5P 3P 9D 6C 4T AD 3T.
Salida : AD 8C 9D 6C 5D

2.2. Funcin Par


Esta funcin se desarrolla buscando dentro de las 10 cartas propuestas por el usuario, aquellas cartas que tengan
igual valor numrico, siendo llamadas parejas, en este caso, solo se considera la funcin par cuando hay slo una
pareja dentro de las cartas propuestas. Esta es la ms baja probabilidad de ganar en trminos del juego despus de la
Funcin Carta Alta y, en este cas la funcin retornar un 1 si es que se cumple o retornar un 0 en caso contrario:
Ejemplo Entrada: 6T 9T 8T 2D 7T 2C 0C 4T 3P AC.
Salida: 2D 2C AC 0C 9T.

2.3. Funcin Doble Par


Esta funcin es similar a la Funcin Par, solo que se consideran las posibilidades en las que hayan dos parejas de
cartas con el mismo valor numrico. Es claro que esta jugada vale ms que la jugada Par y la jugada Carta Alta. Esta
funcin retorna un 1 en caso de que se cumpla y un 0 en caso contrario.
Ejemplo
Entrada: 6T 9T 8T 2D 7T 2C 0T 4T 6P AC.
Salida: 6T 6P 2D 2C 8T.

2.4. Funcin Trio


Esta funcin se lleva a cabo cuando dentro de las 10 cartas otorgadas por el usuario se encuentran tres cartas que
tienen el mismo valor numrico. Es claro que esta jugada tiene mayor peso que las jugadas anteriores, es una funcin
del tipo int, la cual retornar un 1 en caso que se cumpla y un 0 en caso contrario.
Ejemplo Entrada: 2C AP 3C 3P 3T 2D 3D 6T 9T 0C.
Salida: 3C 3P 3T 2C AP.

2.5. Funcin Escalera


Esta funcin se define cuando dentro de las 10 cartas otorgadas por el usuario se encuentra una cadena de numeros sin importar la pinta. En este caso se le otorga el grado de escala o de escala sucia a quien posea esta combinacin.
Esta funcin es del tipo int y retornar un 1 si se cumple y un 0 en caso contrario.
Ejemplo
Entrada: AT 2D 9T 3P KD 5P 4D KP AP 4T.
Salida: AT 2D 3P 4D 5P.

2.6. Funcin Full


Esta funcin se lleva a cabo cuando dentro de las 10 cartas otorgadas por el usuario se encuentran una pareja y un
tro. En este caso la mano se llama Full House o simplemente Full. Esta funcin tambin ser de tipo int y retornar
un 1 si se cumple y un 0 en caso contrario:
Ejemplo
Entrada: 2C 2P 3C 3P 3T AD 3D 6T 9T 0C.
Salida: 2C 2P 3C 3P 3T.

2.7. Funcin Poker


Esta funcin se lleva a cabo cuando dentro de las 10 cartas otorgadas por el usuario se encuentran las 4 cartas de
un mismo valor numrico, recordemos que en la baraja hay 52 cartas donde se subdividen en 13 cartas con una pinta,
es decir, de cada carta con un valor numrico se encunentran solo 4 variedades, por ejemplo el 3D 3T 3C 3P son las
nicas variedades de 3 dentro del juego. Esta funcion ser de tipo int y retornar un 1 si se cumple y un 0 en caso
contrario.
Ejemplo Entrada: AC 6T 9P AD AT QC KP AP JD KD.
Salida: AC AD AT AP 6T.

2.8. Funcin Escalera Real


Esta funcin es la que tiene mayor puntaje en el juego, tiene muy pocas probabilidades de ocurrencia y vale ms
que todas las jugadas vistas anteriormente. Se lleva a cabo cuando dentro de las 10 cartas otorgadas por el usuario
se encuentran las cartas de ms alto valor (es decir As, J, Q, K y 10) pero adems deben ser de la misma pinta. Esta
funcin es de tipo int y retornar un 1 si se cumple y un 0 en caso contrario.
Ejemplo Entrada:0C JC QT QD QP QC KC AC 2P 6P.
Salida: 0C JC QC KC AC.
Es imperante explicar que estas funciones son del tipo jerrquica desde la Escala Real hasta Carta Alta en orden
descendente. As entonces nuestro programa se dotar de una lectura secuencial donde si alguna funcin no se cumple pasar a la de menor grado y as hasta llegar a Carta Alta y terminar el juego.

3. Abordaje del Problema


Para el abordaje del problema se tuvieron distintas ideas las cuales nos vimos truncados en la pregunta Cmo
podemos asegurar que las funciones nos devuelvan algo vlido y como ocuparla con tantas funciones que se deben
verificar?, encontramos la respuesta que se podan hacer si las funciones eran del tipo int, y nos retornaba un 1 en el
caso de que sea verdad (true) o un 0 en caso de que fuera falso (false).
Luego tenamos que asegurar que la mano obtenida fuera la que nos diera el mximo puntaje. Para ello hicimos
una especie de torre donde la base era la funcin Carta Alta y el tope era la funcin Escalera Real, si no cumpla la
condicion del tope, pasaba a verificarse la segunda que es Pker y asi, hasta llegar a la base que siempre se verificaba
y cerraba el juego, por eso la ltima funcin era del tipo void.

También podría gustarte