elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Alguien que me pueda ayudar con este fragmento de código
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alguien que me pueda ayudar con este fragmento de código  (Leído 3,436 veces)
David8

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Alguien que me pueda ayudar con este fragmento de código
« en: 3 Abril 2014, 20:07 pm »

Código:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>


struct carta{
const char *cara;
const char *palo;
};

typedef struct carta Carta;

void llenaMazo(Carta * const wMazo, const char * wCara[], const char * wPalo[]);

int main(void)
{
Carta mazo[52];

const char *cara[] = {"As", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Jota", "Reina", "Rey"};
const char *palo[] = {"Corazones", "Diamantes", "Treboles", "Picas"};

srand(time(NULL));

llenaMazo(mazo, cara, palo);


return EXIT_SUCCESS;
}

void llenaMazo(Carta * const wMazo, const char * wCara[], const char * wPalo[])
{
int i;

for(i=0; i<=51; i++){
wMazo[i].cara = wCara[i%13];
wMazo[i].palo = wPalo[i/13];
}

}



No entiendo lo que quiere hacer. Sé algo de punteros pero me armo un lío enorme.


Muchas gracias



En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Alguien que me pueda ayudar con este fragmento de código
« Respuesta #1 en: 3 Abril 2014, 20:25 pm »

Lo que hace es ordenar el mazo de cartas tal y como fija el orden en los arrays, de As a Rey y a su vez de Corazones a Picas :silbar: ¿Que no entendes exactamente?


« Última modificación: 3 Abril 2014, 20:29 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
David8

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Alguien que me pueda ayudar con este fragmento de código
« Respuesta #2 en: 3 Abril 2014, 23:44 pm »

Lo que hace es ordenar el mazo de cartas tal y como fija el orden en los arrays, de As a Rey y a su vez de Corazones a Picas :silbar: ¿Que no entendes exactamente?

Por ejemplo que hace const char *cara[] y la función llena mazo
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Alguien que me pueda ayudar con este fragmento de código
« Respuesta #3 en: 4 Abril 2014, 01:04 am »

const char *cara es un array constante de punteros a cadena, en cara[0] hay un puntero a "As", en cara[1] a "Dos" y asi con los demas elementos del array.

La funcion llenaMazo, no llena mazo, ni llena Mazo, llenaMazo si, hace lo que te dije antes. ¿Como? Hay un bucle que se ejecuta 52 veces (de 0 a 51), una por cada carta del mazo, en el mismo se asigna a cada carta su cara y su palo, estos se toman de los arrays, se calcula el elemento de cada uno mediante una operacion matematica simple de enteros.

Ejemplo, cuando i es 22:
22 % 13 = 9
22 / 13 = 1

¿Que hay en cara[9]? "Diez". ¿Que hay en palo[1]? "Diamantes". Asi es como funciona, proba con otros numeros y comproba que es correcto. Y de paso escribi una funcion sencilla que tenga un bucle parecido a este pero en lugar de asignar que escriba en pantalla la cara y el palo de cada carta.
« Última modificación: 4 Abril 2014, 01:06 am por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
David8

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Alguien que me pueda ayudar con este fragmento de código
« Respuesta #4 en: 4 Abril 2014, 10:14 am »

const char *cara es un array constante de punteros a cadena, en cara[0] hay un puntero a "As", en cara[1] a "Dos" y asi con los demas elementos del array.

La funcion llenaMazo, no llena mazo, ni llena Mazo, llenaMazo si, hace lo que te dije antes. ¿Como? Hay un bucle que se ejecuta 52 veces (de 0 a 51), una por cada carta del mazo, en el mismo se asigna a cada carta su cara y su palo, estos se toman de los arrays, se calcula el elemento de cada uno mediante una operacion matematica simple de enteros.

Ejemplo, cuando i es 22:
22 % 13 = 9
22 / 13 = 1

¿Que hay en cara[9]? "Diez". ¿Que hay en palo[1]? "Diamantes". Asi es como funciona, proba con otros numeros y comproba que es correcto. Y de paso escribi una funcion sencilla que tenga un bucle parecido a este pero en lugar de asignar que escriba en pantalla la cara y el palo de cada carta.

Muchísimas gracias  :D
Acabo de terminar de estudiar fundamentos fe punteros y estos temas aún me lían bastante
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Alguien que me pueda ayudar con este fragmento de código
« Respuesta #5 en: 4 Abril 2014, 12:01 pm »

De nadas  ::)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines