Red de conocimiento informático - Aprendizaje de código fuente - Problema del póquer (lenguaje C)

Problema del póquer (lenguaje C)

De hecho, este es un problema típico que se resuelve usando una lista vinculada. Sin embargo, si se usa una lista vinculada para este problema, también será necesario usar una matriz con una longitud de 13 como auxiliar. así que uso directamente una matriz para demostrar y usar las cartas en mi mano. Marque y asigne valores a las cartas colocadas sobre la mesa.

Mi abuelo una vez me realizó este truco de magia cuando yo era muy joven. En ese momento, pasé casi dos horas haciéndolo yo mismo jugando a las cartas antes de que finalmente descubriera el orden de las 13 cartas. Si estás interesado, puedes probarlo tú mismo, es muy interesante.

Puedes depurar el siguiente código para ayudar a comprender todo el proceso

#include

void main()

{

int poker[13];//Trece cartas de póquer

for(int i = 0;i<13;i++)//Inicialización

poker[i] = 0;//0 significa que la carta todavía está en la mano y distinto de 0 significa que está colocada en la mesa

int permanecen = 13;//El número de cartas de póquer restantes en la mano

int j = 12;//Empiece a robar cartas desde abajo

int order = 1;//Cuando el orden sea 2, coloque las cartas en este momento la tabla

int number = 1;//Empezar desde A

while(remain != 0)

{

if( j == -1)

{

j = 12;//Devuelve la última tarjeta

continuar;

}

if( poker[j] != 0)//Si la carta ya no está en la mano, pasa a la siguiente

{

j--;

continuar

}

if(orden == 2)

{

póker[j] = número++;//Asignar valor de póquer

permanecer--;//El número de cartas que quedan en la mano se reduce en 1

orden = 1;

continuar;

}

orden++;

j--;

}

//Salida del orden de los naipes en la mano de Xiao Ming al principio

for(i = 0; i < 13;i++)

printf("%d ",poker[i]);

}

Quiero escribir La clave para crear un programa es comprender el proceso. Sólo cuando esté familiarizado con el proceso podrá demostrarlo utilizando el código.