欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)自動(dòng)發(fā)牌程序

 更新時(shí)間:2020年04月22日 15:18:21   作者:陳子劍  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)自動(dòng)發(fā)牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

C語(yǔ)言自動(dòng)發(fā)牌程序,供大家參考,具體內(nèi)容如下

一副撲克有52張牌,打橋牌時(shí)應(yīng)將牌分給4個(gè)人。請(qǐng)?jiān)O(shè)計(jì)一個(gè)程序完成自動(dòng)發(fā)牌的工作。要求:黑桃用S (Spaces)表示,紅桃用H (Hearts)表示,方塊用D (Diamonds)表示,梅花用C (Clubs)表示。

分析:

要設(shè)置數(shù)組表現(xiàn)撲克牌
要設(shè)置數(shù)組表現(xiàn)玩家
要給撲克牌做特定標(biāo)識(shí),得到結(jié)果后玩家要知道自己手中黑桃有哪些、方塊有哪些

初步想法:

設(shè)置4個(gè)字符數(shù)組保存4種梅花牌,設(shè)置4個(gè)字符數(shù)組表示4名玩家分配到的牌
每張牌隨機(jī)發(fā)給4名玩家,當(dāng)玩家的持牌數(shù)達(dá)到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個(gè)玩家*/
 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("運(yùn)行結(jié)束");

 for (int i = 0; i < 13; i++)
 printf("%c ", player1[i]);
 putchar('\n');
 for (int i = 0; i < 13; i++)
 printf("%c ", player2[i]);
 putchar('\n');
 for (int i = 0; i < 13; i++)
 printf("%c ", player3[i]);
 putchar('\n');
 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("黑桃:\n");
  break;
 case 2:
  printf("紅桃:\n");
  break;
 case 3:
  printf("方塊:\n");
  break;
 case 4:
  printf("梅花:\n");
  break;
 }
 
 printf("Player1:");
 for (int i = a; i < (*p1); i++)
  printf("%c ", player1[i]);

 putchar('\n');
 
 printf("Player2:");
 for (int i = b; i < (*p2); i++)
  printf("%c ", player2[i]);
 
 putchar('\n');
 printf("Player3:");
 for (int i = c; i < (*p3); i++)
  printf("%c ", player3[i]);
 
 putchar('\n');
 
 printf("Player4:");
 for (int i = d; i < (*p4); i++)
  printf("%c ", player4[i]);

 putchar('\n');
}

以下代碼保證了當(dāng)某個(gè)人得到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;

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于C語(yǔ)言實(shí)現(xiàn)點(diǎn)餐系統(tǒng)

    基于C語(yǔ)言實(shí)現(xiàn)點(diǎn)餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于C語(yǔ)言實(shí)現(xiàn)點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • VSCode如何使用最新的C++20(推薦)

    VSCode如何使用最新的C++20(推薦)

    這篇文章主要介紹了VSCode使用最新的C++20的相關(guān)知識(shí),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C/C++之long int與long long的區(qū)別及說(shuō)明

    C/C++之long int與long long的區(qū)別及說(shuō)明

    這篇文章主要介紹了C/C++之long int與long long的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 基于C語(yǔ)言模擬實(shí)現(xiàn)人生重開(kāi)模擬器游戲

    基于C語(yǔ)言模擬實(shí)現(xiàn)人生重開(kāi)模擬器游戲

    人生重開(kāi)模擬器是前段時(shí)間非常火的一個(gè)小游戲,所以本文我們將一起學(xué)習(xí)使用c語(yǔ)言寫(xiě)一個(gè)簡(jiǎn)易版的人生重開(kāi)模擬器,感興趣的小伙伴可以了解下
    2024-02-02
  • C語(yǔ)言版三子棋小游戲

    C語(yǔ)言版三子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++超詳細(xì)分析講解內(nèi)聯(lián)函數(shù)

    C++超詳細(xì)分析講解內(nèi)聯(lián)函數(shù)

    為了消除函數(shù)調(diào)用的時(shí)空開(kāi)銷(xiāo),C++ 提供一種提高效率的方法,即在編譯時(shí)將函數(shù)調(diào)用處用函數(shù)體替換,類(lèi)似于C語(yǔ)言中的宏展開(kāi)。這種在函數(shù)調(diào)用處直接嵌入函數(shù)體的函數(shù)稱(chēng)為內(nèi)聯(lián)函數(shù)(Inline Function),又稱(chēng)內(nèi)嵌函數(shù)或者內(nèi)置函數(shù)
    2022-06-06
  • OpenCV實(shí)現(xiàn)多圖像拼接成一張大圖

    OpenCV實(shí)現(xiàn)多圖像拼接成一張大圖

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)多圖像拼接成一張大圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C語(yǔ)言實(shí)現(xiàn)單詞小助手

    C語(yǔ)言實(shí)現(xiàn)單詞小助手

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)單詞小助手,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C++?STL中五個(gè)常用算法使用教程及實(shí)例講解

    C++?STL中五個(gè)常用算法使用教程及實(shí)例講解

    本文主要介紹了C++?STL算法中常見(jiàn)的五個(gè)算法的使用教程并附上了案例詳解,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • C++?Queue隊(duì)列類(lèi)模版實(shí)例詳解

    C++?Queue隊(duì)列類(lèi)模版實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹C++?Queue隊(duì)列類(lèi)模版實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02

最新評(píng)論