C語言實(shí)現(xiàn)發(fā)牌洗牌
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)發(fā)牌洗牌的具體代碼,供大家參考,具體內(nèi)容如下
1.模擬發(fā)牌程序
通過寫兩個(gè)函數(shù)模塊來編寫洗牌程序和打印的發(fā)牌程序
2.編寫洗牌程序
void shuffle(char cards[][10],int n){ ?? ?int i=54; ?? ?char ca,cb,ct[10]; ?? ?srand((unsigned)time(NULL)); ?? ? ?? ?while(i--){ ?? ??? ?ca=rand()%54; ?? ??? ?cb=rand()%54; ?? ??? ? ?? ??? ?strcpy(ct,cards[ca]); ?? ??? ?strcpy(cards[ca],cards[cb]); ?? ??? ?strcpy(cards[cb],ct);?? ??? ? ?? ?} ?? ??? ? }
3.編寫打印的發(fā)牌程序
void printCard(char cards[][10],int n){ ?? ?int i,rn=0; ?? ?printf("第一個(gè)人:\n"); ?? ?for(i=0;i<17;i++){ ?? ??? ?if(rn%5==0) ?? ??? ??? ?printf("\n"); ?? ??? ?rn++; ?? ??? ?printf("%s ? ? ?",cards[i]);?? ??? ? ?? ?} ?? ?printf("\n\n第二個(gè)人:\n"); ?? ?rn=0; ?? ?for(i=17;i<33;i++){ ?? ??? ?if(rn%5==0) ?? ??? ??? ?printf("\n"); ?? ??? ?rn++; ?? ??? ?printf("%s ? ? ?",cards[i]);?? ??? ? ?? ?} ?? ?printf("\n\n第三個(gè)人:\n"); ?? ?rn=0; ?? ?for(i=33;i<50;i++){ ?? ??? ?if(rn%5==0) ?? ??? ??? ?printf("\n"); ?? ??? ?rn++;?? ? ?? ??? ?printf("%s ? ? ?",cards[i]);?? ? ?? ?} ?? ?printf("\n\n底牌:\n"); ?? ?for(i=51;i<54;i++){ ?? ??? ?printf("%s ? ? ?",cards[i]);?? ??? ? ?? ?} ?? ?printf("\n"); ?? ?getchar(); }
4.在主函數(shù)預(yù)定義和調(diào)用
main(){ ?? ?system("color 0f"); ?? ?char cards[][10]={ ?? ?"紅桃 2","紅桃 3","紅桃 4","紅桃 5","紅桃 6","紅桃 7","紅桃 8","紅桃 9","紅桃 10","紅桃 J","紅桃 Q","紅桃 K","紅桃 A", ?? ?"方塊 2","方塊 3","方塊 4","方塊 5","方塊 6","方塊 7","方塊 8","方塊 9","方塊 10","方塊 J","方塊 Q","方塊 K","方塊 A", ?? ?"梅花 2","梅花 3","梅花 4","梅花 5","梅花 6","梅花 7","梅花 8","梅花 9","梅花 10","梅花 J","梅花 Q","梅花 K","梅花 A",?? ??? ? ?? ?"黑桃 2","黑桃 3","黑桃 4","黑桃 5","黑桃 6","黑桃 7","黑桃 8","黑桃 9","黑桃 10","黑桃 J","黑桃 Q","黑桃 K","黑桃 A", ?? ?"大王","小王"? ?? ?}; ?? ?int n = 54; ? ?? ?shuffle(cards,n); ?? ?printCard( cards, n); ?? ??? ? return 0; }
5.最終程序
#include<stdio.h> #include<string.h> #include<stdlib.h>? #include<time.h> void shuffle(char cards[][10],int n); void printCard(char cards[][10],int n); main(){ ?? ?system("color 0f"); ?? ?char cards[][10]={ ?? ?"紅桃 2","紅桃 3","紅桃 4","紅桃 5","紅桃 6","紅桃 7","紅桃 8","紅桃 9","紅桃 10","紅桃 J","紅桃 Q","紅桃 K","紅桃 A", ?? ?"方塊 2","方塊 3","方塊 4","方塊 5","方塊 6","方塊 7","方塊 8","方塊 9","方塊 10","方塊 J","方塊 Q","方塊 K","方塊 A", ?? ?"梅花 2","梅花 3","梅花 4","梅花 5","梅花 6","梅花 7","梅花 8","梅花 9","梅花 10","梅花 J","梅花 Q","梅花 K","梅花 A",?? ??? ? ?? ?"黑桃 2","黑桃 3","黑桃 4","黑桃 5","黑桃 6","黑桃 7","黑桃 8","黑桃 9","黑桃 10","黑桃 J","黑桃 Q","黑桃 K","黑桃 A", ?? ?"大王","小王"? ?? ?}; ?? ?int n = 54; ? ?? ?shuffle(cards,n); ?? ?printCard( cards, n); ?? ??? ? return 0; } void shuffle(char cards[][10],int n){ ?? ?int i=54; ?? ?char ca,cb,ct[10]; ?? ?srand((unsigned)time(NULL)); ?? ? ?? ?while(i--){ ?? ??? ?ca=rand()%54; ?? ??? ?cb=rand()%54; ?? ??? ? ?? ??? ?strcpy(ct,cards[ca]); ?? ??? ?strcpy(cards[ca],cards[cb]); ?? ??? ?strcpy(cards[cb],ct);?? ??? ? ?? ?} ?? ??? ? } void printCard(char cards[][10],int n){ ?? ?int i,rn=0; ?? ?printf("第一個(gè)人:\n"); ?? ?for(i=0;i<17;i++){ ?? ??? ?if(rn%5==0) ?? ??? ??? ?printf("\n"); ?? ??? ?rn++; ?? ??? ?printf("%s ? ? ?",cards[i]);?? ??? ? ?? ?} ?? ?printf("\n\n第二個(gè)人:\n"); ?? ?rn=0; ?? ?for(i=17;i<33;i++){ ?? ??? ?if(rn%5==0) ?? ??? ??? ?printf("\n"); ?? ??? ?rn++; ?? ??? ?printf("%s ? ? ?",cards[i]);?? ??? ? ?? ?} ?? ?printf("\n\n第三個(gè)人:\n"); ?? ?rn=0; ?? ?for(i=33;i<50;i++){ ?? ??? ?if(rn%5==0) ?? ??? ??? ?printf("\n"); ?? ??? ?rn++;?? ? ?? ??? ?printf("%s ? ? ?",cards[i]);?? ? ?? ?} ?? ?printf("\n\n底牌:\n"); ?? ?for(i=51;i<54;i++){ ?? ??? ?printf("%s ? ? ?",cards[i]);?? ??? ? ?? ?} ?? ?printf("\n"); ?? ?getchar(); }
6.1程序結(jié)果
6.2
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言實(shí)現(xiàn)在數(shù)組A上有序合并數(shù)組B的方法
這篇文章主要介紹了C語言實(shí)現(xiàn)在數(shù)組A上有序合并數(shù)組B的方法,包含了數(shù)組操作的完整實(shí)現(xiàn)過程以及相應(yīng)的代碼分析與改進(jìn),具有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下2014-09-09深入探討:main函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼?
本篇文章是對(duì)main函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼,進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C語言多種方法實(shí)現(xiàn)一個(gè)函數(shù)左旋字符串中K個(gè)字符
這篇文章主要為大家介紹了C語言多種方法實(shí)現(xiàn)一個(gè)函數(shù),可以左旋字符串中K個(gè)字符,文中附含詳細(xì)的示例講解,有需要的朋友可以借鑒參考下2021-10-10C++編譯錯(cuò)誤variable-sized?object?may?not?be?initiali問題
這篇文章主要介紹了C++編譯錯(cuò)誤variable-sized?object?may?not?be?initiali問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05