Está en la página 1de 17

Proyecto Final

Santiago Achig

Kings Poker

Declaracin de variables
Prototipo de funciones
Recepcin de datos
Procesamiento de datos
o Orden
o Clasificacin

Procesamiento de resultados
Impresin de resultados
Fin del Programa

Libreras
Se incluyen las libreras
#include <iostream>
#include <windows.h>
Y adems
using namespace std;

Declaracin de variables
Se utilizan dos matrices, una de insercin de
datos por parte del usuario y otra de resultados,
adems de dos variables para la funcin orden.
Se declaran primero para que sean globales en el
programa
int m[3];
int r[3];
int insert;
int moveItem;

Prototipo de funciones
Se escriben los prototipo de las funciones a
emplearse, cada una con nombre relacionado a
su funcin.
void orden( int []);
void triple( int []);
void doble( int []);
void none( int []);

Recepcin de datos
El programa comienza explicando al usuario la
notacin utilizada y pidindole ingresar la primera
mano.

Recepcin de datos
Los datos se almacenan dentro de la matriz m[]
cin>>m[0]>>m[1]>>m[2]; cout << endl;
Se inicia un lazo:
while (m[0]!=0 and m[1]!=0 and m[2]!=0)
Con lo cual se garantiza el fin del programa al ingresar
los valores 0 0 0.
Se discriminan los valores ingresados fuera del rango
if (m[0]>13 or m[0]<1 or m[1]>13 or m[1]<1 or
m[2]>13 or m[2]<1)
cout << "Ingrese valores dentro del rango"<<endl<<
endl;

Procesamiento de datos
Se empieza por ordenar los datos de menor a mayor.
orden (m);
La funcin orden est definida como:
void orden( int b[] )
{for ( int next = 1; next < 3; ++next )
{ insert = b[ next ];
int moveItem = next;
while ( ( moveItem > 0 ) && ( b[ moveItem - 1 ] > insert )
)
{ b[ moveItem ] = b[ moveItem - 1 ];
--moveItem;}
b[ moveItem ] = insert; }}

Procesamiento de datos
El mtodo de orden es el estudiado en clase.
A continuacin se prosigue a ubicar los elementos
iguales en las posiciones m[0] y m[1]
if (m[1]==m[2])
{
insert=m[0];
m[0]=m[2];
m[2]=insert;
}

Procesamiento de datos
Se clasifican los datos ingresados segn los
criterios: triple, doble, none(nada).

if(m[1]==m[2] and m[2]==m[0])


triple (m);
else
{if (m[0]==m[1])
doble (m);
else
none (m);
}

Procesamiento de
resultados
Los resultados se almacenan en la matriz r[]
Para el caso Triple se ejecuta la funcin triple,
definida como:
void triple( int c[] )
{
for ( int next = 0; next < 3; ++next )
{
r [ next ]= c[ next ]+1;
}
}

Procesamiento de
resultados
Para el caso Doble se ejecuta la funcin doble, definida
como:
void doble( int d[] )
{
if (d[0]==13 and d[1]==13 and d[2]==12)
{
for ( int next = 0; next < 3; ++next )
{
r [ next ]= 1;
}
}
else
{

Procesamiento de
resultados
if (d[2]==13)
{
for ( int next = 0; next < 2; ++next )
{
r [ next ]= d[ next ]+1;
}
r [2]=1;
}
else
{

Procesamiento de
resultados
if (d[2]==d[0]-1)
{
for ( int next = 0; next < 2; ++next )
{
r [ next ]= d[ next ];
}
r[2]=d[2]+2;
}
else
{
for ( int next = 0; next < 2; ++next )
{
r [ next ]= d[ next ];
}
r[2]=d[2]+1;
}
}
}
}

Procesamiento de
resultados
Para el caso Nada se ejecuta la funcin none,
definida como:
void none( int e[] )
{
for ( int next = 0; next < 2; ++next )
{
r [ next ]= 1;
}
r [2]=2;
}

Impresin de resultados
Se dej intencionalmente el caso de 13 13 13,
para que en la impresin aparezca *, como se
muestra:
if (r[1]==14 and r[2]==14 and r[0]==14)
cout <<"*"<<endl<<endl;
else
cout<<r[0]<<" "<<r[ 1 ]<<" "<<r[ 2 ]
<<endl<<endl;

Fin del programa


Se vuelve a pedir ingresar otra mano:
cout<<endl<<"Ingrese su mano: "<< endl;
cin>>m[0]>>m[1]>>m[2]; cout << endl;
Hasta que se ingresen los valores 0 0 0, con los
cuales se sale del lazo, y se recibe el ltimo
mensaje:
cout<<"Gracias por utilizar nuestro
programa"<<endl;

También podría gustarte