Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de póquer

Programación de póquer

#incluye

#incluye

#incluye

#incluye

#definir conjunto 52

#definir mitad 26

#Definir color ((char)13)

//El código de los naipes es un conjunto de datos en base 13, del 0 al 51.

//La función tell se utiliza para explicar el contenido codificado.

int tell(char tarjeta, char * descripción)

{

char i=0, j = 0;

char * palo[]={ "pica", "corazón", "trébol", "diamante" };

char *cara[] = {"A", "2", "3", " 4 ", " 5 ", " 6 ", " 7 ", " 8 ", " 9 ",

"10", "Jota", "Reina", "Rey"};

p>

//La pregunta es muy extraña. Es necesario descontar 8 cartas, pero incluyendo rey y rey. La regla correcta debería ser que si no hay rey ​​o rey, se descontarán 8 cartas y cada jugador recibirá 11 cartas.

//En caso contrario se descontarán 18 cartas o 6 cartas, en caso contrario el número de cartas repartidas a cada persona es diferente (no múltiplo de 4).

//Si es necesario, puede definir JB=52, JA=53, SUIT=54, HALF=27.

//if (card gt; JB || card lt0 || ! descripción) devuelve 0;

//if (card == JB) { sprintf (descripción, "grande Joker"); devolver 1; }

//if (tarjeta == JA) { sprintf (descripción, "Pequeño Joker"); devolver 1; }

i = Tarjeta/ color; j = color de la tarjeta;

sprintf(descripción, "s s", palo[i], cara[j]); }

//Inicializar tarjetas para formar tarjetas secuenciales.

int init(char *poker)

{

char I = 0;

si (!poker) devuelve 0;

for(I = 0;iltsuit;i)poker[I]=I;

srand((unsigned)time(0));

Devolver 1 ;

}

//Baraja las cartas: Divide las cartas actuales en dos grupos y luego crúzalas. Hay dos posibilidades: primero la mano derecha, primero la mano izquierda. Este es el primer método de sustitución de la izquierda.

int wash_left_hand(char *poker)

{

char i=0, j=0, k = 0;

char boker[traje];

if(!poker) devuelve 0;

for(I = 0;ilthalf;i) {

j = I * 2 ; //La mitad superior del grupo

boker[j]= poker[I];

k = i half; //La mitad inferior del grupo

boker[j 1]= poker[k];

}//Siguiente I

memcpy(poker, boker, palo);

Regresar 1;

}

//Barajar: Divide las cartas actuales en dos grupos y luego crúzalas. Hay dos posibilidades: primero la mano derecha, primero la mano izquierda. Este es el primer método de intercambio de la mano derecha.

//Tenga en cuenta que la diferencia entre el orden de la mano izquierda y derecha radica en los cambios pares e impares de la variable j.

int wash_right_hand(char *poker)

{

char i=0, j=0, k = 0;

char boker[traje];

if(!poker) devuelve 0;

for(I = 0;ilthalf;i) {

j = I * 2 ; //La mitad superior del grupo

boker[j 1]= poker[I];

k = i half; //La mitad inferior del grupo

boker[j]= poker[k];

}//Siguiente I

memcpy(poker, boker, palo);

Regresar 1;

}

// Baraja las cartas según la carta actual, utilizando principalmente la paridad de la función aleatoria para decidir si barajar con la mano izquierda o la derecha.

int wash_once(char *poker)

{

¿Devolver rand()2? wash_left_hand (poker): wash_right_hand (poker);

}

// Baraja las cartas aleatoriamente varias veces según la carta actual, al menos 8 veces y como máximo 18 veces.

int wash_full(char *póker)

{

int i = 0, j = 0, k = 0

I; = rand() 10 8;

printf("\nIntento limpiar d veces.\n", I);

for(j = 0;j lti;j) k =wash_once(poker);

Return k;

}

int main(void)

{

char elección = 0, i = 0, j = 0; char poker [palo], tarjeta [16]

init(poker);

printf("\n\t¡Bienvenido a mi juego de póquer!\n");

printf("\t0-Wash.\n");

printf(" \t 1-Mostrar a.\n ");

printf("\T2-Mostrar b.\n");

printf("\T3-Mostrar c.\ n ");

printf(" \ T4 - Mostrar d . \ n ");

printf(" \ tCualquier otro número - salir.\n " );

printf("¿Tu elección?");

scanf("d ", selección de amplificador

if(seleccione 4)

if(choice ==0) {

wash_full(poker);

Continuar

}//finalizar si

I =(elección-1)* 11; //Sigue 11 cartas y resta 8 cartas.

printf("Su tarjeta de presentación es...\ n ");

for(j = I; j ltI 11; j ) {

decir (Póker[j], naipes);

printf("s\t ", tarjeta);

}//Siguiente

printf(" \ n ");

} mientras(1);

Devuelve 0;

}