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) p>
{
j = 12;//Devuelve la última tarjeta
continuar;
} p>
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.