아래 5마용 카드 셔플 프로그램입니다. 이거 실행하면 아래와 같이 나오는데, -------------------------------------------- Diamond 2, Diamond 3, Diamond 7, Spade 5, Diamond 10, Spade 7, Clover 7, Spade Ace, Clover 8, Diamond 8 Diamond 4, Spade K, Spade 2, Clover 4, Spade 3, Clover 9, Diamond 6, Spade Q, Spade 4, Heart 4 Diamond K, Spade 6, Clover J, Spade 8, Clover 6, Spade 9, Diamond 5, Spade 10, Spade J, Clover 5 Heart 8, Diamond Ace, Clover Q, Diamond 9, Diamond J, Clover 2, Diamond Q, Heart K, Heart 9, Heart 2 Heart Ace, Heart Q, Joker, Heart 3, Heart 5, Clover 3, Heart 6, Heart 7, Heart 10, Heart J Clover K, Clover Ace, Clover 10 -------------------------------------------- 위의 각 10장씩을 1-5번 선수에게 주고, 제일 밑의 3장은 주공에게 나중에 주면 되지요. C 프로그램은 아래에.. /* card shuffling for 5-man Mighty */ #include <stdio.h> #include <sys/types.h> #include <unistd.h> #define USED 0 #define UnUSED 1 #define NumCard 53 static int CARD[NumCard+1]; main(argc,argv) int argc; char *argv[]; { int i,j; init_rand(); init_card(); printf("--------------------------------------------\n"); for(i=0;i<5;i++) { for(j=0;j<5;j++) { sel_card(); printf(", "); } printf("\n"); for(j=0;j<4;j++) { sel_card(); printf(", "); } sel_card(); printf("\n\n"); } sel_card();printf(", "); sel_card();printf(", "); sel_card();printf("\n"); printf("--------------------------------------------\n\n"); } init_card() { int i; for(i=0;i<NumCard;i++) CARD[i]=UnUSED; } init_rand() { int seed; seed = (int)getpid(); srand(seed); } sel_card() { int i,cnt; i=rand()%NumCard; cnt=0; while(CARD[i]==USED) { i++; i%= NumCard; cnt++; if (cnt>NumCard*2) exit(printf("No UnUsed Card\007\n")); } CARD[i]=USED; print_card(i); } print_card(id) int id; { int suit, num; suit = (id/13); num = id % 13; if (id>=52) return(printf("Joker")); if (suit==0) printf("Spade "); else if (suit==1) printf("Diamond "); else if (suit==2) printf("Heart "); else if (suit==3) printf("Clover "); if (num == 1 ) printf("Ace"); else if (num == 11) printf("J"); else if (num == 12) printf("Q"); else if (num == 0 ) printf("K"); else printf("%d",num); }