[Aporte] Loteria en C - Programa que Muestra las cartas en Desorden

Iniciado por AlbertoBSD, 12 Junio 2016, 04:18 AM

0 Miembros y 1 Visitante están viendo este tema.

AlbertoBSD

Les dejo un programa para que juegen loteria mexicana

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int *barajear(int max);

char *cartas[] = {
"El Ggallo","El diablito","La dama","El Catrin","El paraguas","La sirena","La escalera","La botella","El barril","El arbol","El melon","El valiente","El gorrito","La muerte","La pera","La bandera","El bandolon","El violoncello","La garza","El pajarito","La mano","La bota","La luna","El cotorro","El borracho","El corazon","El negrito","La sandia","El tambor","El camaron","Las jaras","El musico","La araña","El soldado","La estrella","El cazo","El mundo","El apache","El nopal","El alacran","la rosa","La calavera","La campana","El cantarito","El venado","El sol","La corona","La chalupa","El pino","El pescado","La palma","La maceta","El arpa","La rana"};

int main() {
int *baraja = barajear(54);
int i = 0;
char c;
while(i<54) {
printf("%s\n",cartas[baraja[i]]);
c = fgetc(stdin);
i++;
}
}

int *barajear(int max) {
char *no_repetidos = NULL;
int *desorden = NULL;
int r = 0;
register int i = 0;
sranddev();
srand(time(NULL));
while(no_repetidos == NULL){
no_repetidos = calloc(max,sizeof(char));
}
while(desorden == NULL){
desorden = calloc(max,sizeof(int));
}
do {
r = rand() % max;
if(no_repetidos[r] == 0) {
desorden[i] = r;
no_repetidos[r] = 1;
i++;
}
}while(i < max);
free(no_repetidos);
return desorden;
}


Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW