Red de conocimiento informático - Problemas con los teléfonos móviles - Espectáculo de cerdo

Espectáculo de cerdo

#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 (tarjeta & gt; JB || tarjeta & lt0 || ! descripción) devuelve 0

//if (tarjeta == JB) { sprintf (descripción, "Gran comodín"); return 1; }

//if (card == JA) { sprintf (descripción, "Pequeño comodín"); i = tarjeta/color; j = tarjeta % color;

sprintf(descripción, "%s %s", traje[i], cara[j]); ;

}

//Inicializar tarjetas para formar tarjetas secuenciales.

int init(char *poker)

{

char I = 0;

si (!poker) devuelve 0;

for(I = 0;i<suit;i++)poker[I]=I;

srand((unsigned)time(0));

Devolver 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 sustitución de la izquierda.

int wash_left_hand(char *poker)

{

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

char boker[traje];

if(!poker) return 0;

for(i = 0;i<half;i++) {

j = I * 2 ; //mitad grupo superior

boker[j]= poker[I];

k = i + mitad; //mitad grupo inferior

boker[ j+1]= poker[k];

}//Siguiente I

memcpy(poker,boker,suit);

Devuelve 1; p>

}

//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) return 0;

for(i = 0;i<half;i++) {

j = I * 2 ; //mitad grupo superior

boker[j+1]= poker[I];

k = i + mitad; //mitad grupo inferior

boker[j]= poker[k];

}//Siguiente I

memcpy(poker,boker,suit);

Devuelve 1; p>

}

// 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()% 18;

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

for(j = 0; j & lt i;j++) k+=wash_once(poker);

return k;

}

int main(void)

{

elección de caracteres = 0, i = 0, j = 0; char poker [palo], carta [16];

init (póquer); {

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

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

p>

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

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

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

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

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

scanf("%d ", & amp selección);

if (Opción 4)descanso;

if(opción ==0) {

wash_full(poker);

Continuar;

} //Finalizar si

I =(choice-1)* 11; //Concéntrate en 11 cartas y resta 8 cartas.

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

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

decir(poker[j], cartas);

printf("%s\t ", carta);

}//Siguiente

printf ( "\n");

} mientras(1

Devuelve 0;