最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)自動發(fā)牌程序

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

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

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

分析:

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

初步想法:

設(shè)置4個字符數(shù)組保存4種梅花牌,設(shè)置4個字符數(shù)組表示4名玩家分配到的牌
每張牌隨機發(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個玩家*/
 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("運行結(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)某個人得到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;

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

相關(guān)文章

  • 深入了解C++智能指針的使用

    深入了解C++智能指針的使用

    智能指針的本質(zhì)就是使用一個對象來接管一段開辟的空間,在該對象在銷毀的時候,自動調(diào)用析構(gòu)函數(shù)來釋放這段內(nèi)存。本文就來和大家詳細(xì)聊聊智能指針的使用,需要的可以參考一下
    2022-10-10
  • C++原地刪除有序數(shù)組重復(fù)項的N種方法

    C++原地刪除有序數(shù)組重復(fù)項的N種方法

    給定一個排序數(shù)組,你需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個元素只出現(xiàn)一次,返回移除后數(shù)組的新長度,不要使用額外的數(shù)組空間,你必須在 原地 修改輸入數(shù)組 并在使用O(1)額外空間的條件下完成,故本文介紹了C++原地刪除有序數(shù)組重復(fù)項的N種方法,需要的朋友可以參考下
    2025-03-03
  • OpenCV和C++實現(xiàn)圖像的翻轉(zhuǎn)(鏡像)、平移、旋轉(zhuǎn)、仿射與透視變換

    OpenCV和C++實現(xiàn)圖像的翻轉(zhuǎn)(鏡像)、平移、旋轉(zhuǎn)、仿射與透視變換

    這篇文章主要給大家介紹了關(guān)于OpenCV和C++實現(xiàn)圖像的翻轉(zhuǎn)(鏡像)、平移、旋轉(zhuǎn)、仿射與透視變換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • C語言實現(xiàn)數(shù)字炸彈小游戲

    C語言實現(xiàn)數(shù)字炸彈小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)數(shù)字炸彈小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C++ 中類(class)和結(jié)構(gòu)體(struct)的區(qū)別

    C++ 中類(class)和結(jié)構(gòu)體(struct)的區(qū)別

    類和結(jié)構(gòu)體經(jīng)常被用來定義復(fù)雜的數(shù)據(jù)結(jié)構(gòu),但兩者之間既有區(qū)別又能很好地結(jié)合使用,本文主要介紹了C++ 中類(class)和結(jié)構(gòu)體(struct)的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Visual Studio 2022卡死分析

    Visual Studio 2022卡死分析

    本文主要介紹了Visual Studio 2022卡死分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • C語言超全面覆蓋操作符知識點

    C語言超全面覆蓋操作符知識點

    C?語言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,賦值操作符,單目操作符,關(guān)系操作符,邏輯操作符,條件操作符等。讓我們通讀本篇來詳細(xì)了解吧
    2022-06-06
  • C++實現(xiàn)LeetCode(80.有序數(shù)組中去除重復(fù)項之二)

    C++實現(xiàn)LeetCode(80.有序數(shù)組中去除重復(fù)項之二)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(80.有序數(shù)組中去除重復(fù)項之二),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 擴展KMP算法(Extend KMP)

    擴展KMP算法(Extend KMP)

    我們這里說的KMP不是拿來放電影的(雖然我很喜歡這個軟件),而是一種算法。KMP算法是拿來處理字符串匹配的。今天我們談到的是對KMP算法的拓展
    2014-08-08
  • C語言實現(xiàn)字符串拼接和拷貝

    C語言實現(xiàn)字符串拼接和拷貝

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)字符串拼接和拷貝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論

建瓯市| 江陵县| 克东县| 兰溪市| 大同县| 新民市| 柳河县| 宣武区| 华容县| 家居| 宕昌县| 汕尾市| 徐汇区| 平阳县| 资源县| 略阳县| 游戏| 泰兴市| 大庆市| 杭锦旗| 阿拉善盟| 九江县| 平阴县| 襄汾县| 井研县| 盐津县| 伊宁市| 安乡县| 墨玉县| 沧州市| 墨玉县| 确山县| 阜新| 通城县| 平泉县| 漳浦县| 浑源县| 胶南市| 前郭尔| 小金县| 大名县|