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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言基礎(chǔ)知識點(diǎn)解析(extern,static,typedef,const)
本篇文章是對C語言基礎(chǔ)知識點(diǎn)(extern,static,typedef,const)的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下2013-10-10
C++ 學(xué)習(xí)之旅 Windows程序內(nèi)部運(yùn)行原理
學(xué)習(xí)C++與.net不同的是,一定要搞清楚Windows程序內(nèi)部運(yùn)行原理,因?yàn)樗婕按蠖鄶?shù)是操作系統(tǒng)的調(diào)用,而.net畢竟是在.netFrameWork上唱戲2012-11-11
C++輸出上三角/下三角/菱形/楊輝三角形(實(shí)現(xiàn)代碼)
本篇文章是對C++中輸出上三角/下三角/菱形/楊輝三角形的示例代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
OpenCV實(shí)現(xiàn)特征檢測和特征匹配方法匯總
一幅圖像中總存在著其獨(dú)特的像素點(diǎn),這些點(diǎn)我們可以認(rèn)為就是這幅圖像的特征,成為特征點(diǎn),本文主要介紹了OpenCV實(shí)現(xiàn)特征檢測和特征匹配方法,感興趣的可以了解一下2021-08-08

