C 언어 자동 카드 발급 프로그램 실현

C 언어 자동 카드 발급 프로그램 은 여러분 이 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
카드 한 벌 에 52 장의 카드 가 있 는데,브리지 를 칠 때 는 4 명 에 게 카드 를 나 누 어 주어 야 한다.프로그램 을 설계 하여 자동 으로 카드 를 보 내 는 작업 을 완성 하 세 요.요구:스페이드 는 S(Spaces)로,홍 도 는 H(Hearts)로,사각형 은 D(Diamonds)로,매 화 는 C(Clubs)로 표시 한다.
분석:
배열 표현 카드 를 설정 해 야 합 니 다.
배열 표현 유 저 를 설정 해 야 합 니 다.
카드 에 특정한 표 지 를 해 야 한다.결 과 를 얻 은 후에 유 저 는 자신의 손 에 있 는 스페이드 가 어떤 것 이 있 는 지,네모 난 것 이 어떤 것 이 있 는 지 알 아야 한다.
초보적인 생각:
4 개의 문자 배열 을 설정 하여 4 가지 매화 패 를 저장 하고 4 개의 문자 배열 을 설정 하여 4 명의 게이머 가 배정 한 패 를 표시 합 니 다.
각 카드 는 랜 덤 으로 4 명의 유저 에 게 발송,유저 의 카드 소지 수가 13 에 도달 하면,이 유저 에 게 카드 를 분배 하지 않 습 니 다
코드 표시:

void mycode_13()
{
 srand(unsigned(time(NULL)));
 /*   */
 char S[13] = { '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A' };
 char H[13] = { '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A' };
 char D[13] = { '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A' };
 char C[13] = { '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A' };

 /*4   */
 char player1[13], player2[13], player3[13], player4[13];
 int p1 = 0, p2 = 0, p3 = 0, p4 = 0;

 distribution(S, player1, player2, player3, player4, &p1, &p2, &p3, &p4);
 distribution(H, player1, player2, player3, player4, &p1, &p2, &p3, &p4);
 distribution(D, player1, player2, player3, player4, &p1, &p2, &p3, &p4);
 distribution(C, player1, player2, player3, player4, &p1, &p2, &p3, &p4);

 puts("    ");

 for (int i = 0; i < 13; i++)
 printf("%c ", player1[i]);
 putchar('
'); for (int i = 0; i < 13; i++) printf("%c ", player2[i]); putchar('
'); for (int i = 0; i < 13; i++) printf("%c ", player3[i]); putchar('
'); for (int i = 0; i < 13; i++) printf("%c ", player4[i]); } void distribution(char * S_H_D_C, char * player1, char * player2, char * player3, char * player4, int *p1, int *p2, int *p3, int *p4) { static int h = 1; int r; int a = *p1, b = *p2, c = *p3, d = *p4; for (int i = 0; i < 13; i++) { r = (rand() % 4) + 1; while ((r == 1 && (*p1) == 13) || (r == 2 && (*p2) == 13) || (r == 3 && (*p3) == 13) || (r == 4 && (*p4) == 13)) r = (rand() % 4) + 1; switch (r) { case 1: player1[(*p1)++] = S_H_D_C[i]; break; case 2: player2[(*p2)++] = S_H_D_C[i]; break; case 3: player3[(*p3)++] = S_H_D_C[i]; break; case 4: player4[(*p4)++] = S_H_D_C[i]; break; default: break; } } switch (h++) { case 1: printf(" :
"); break; case 2: printf(" :
"); break; case 3: printf(" :
"); break; case 4: printf(" :
"); break; } printf("Player1:"); for (int i = a; i < (*p1); i++) printf("%c ", player1[i]); putchar('
'); printf("Player2:"); for (int i = b; i < (*p2); i++) printf("%c ", player2[i]); putchar('
'); printf("Player3:"); for (int i = c; i < (*p3); i++) printf("%c ", player3[i]); putchar('
'); printf("Player4:"); for (int i = d; i < (*p4); i++) printf("%c ", player4[i]); putchar('
'); }
다음 코드 는 누군가가 13 장의 카드 를 받 은 후에 카드 를 받 지 않 는 다 는 것 을 보증 합 니 다.

r = (rand() % 4) + 1;
 while ((r == 1 && (*p1) == 13) || (r == 2 && (*p2) == 13) || (r == 3 && (*p3) == 13) || (r == 4 && (*p4) == 13))
  r = (rand() % 4) + 1;
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기