首页 > 其他 > 详细

扑克牌发牌程序。给四个玩家发牌(不含大小王),要求每次发的牌都不一样。

时间:2020-05-21 16:44:54      阅读:32      评论:0      收藏:0      [点我收藏+]
 分析:
   52张牌采用1~52代表,其中黑桃对应1~13,红桃对应14~26,梅花对应27~39,方块对应40~52。例如: 28 是梅花2, 29 是梅花3。将52张牌(号)依次随机放入数组Deck中。方法是随机产生在数组中放置的位置 r (下标号),如果该位置已有牌(Deck[r] != 0), 则重新生成新的位置r,直到该位置无牌。 
#include <iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

int main() {
    int card, r, Deck[52];
    char pok_C[4][7] = {"黑桃","红桃","梅花","方块"};
    char pok_N[13][3] = 
    {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    srand((unsigned)time (0));       //随机种子
    //随机产生52张牌
    for(int i=0; i<=52; i++){
        Deck[i] = 0;
    }
    for(card=1; card<=52; card++){
        r = rand() % 52;
        while(Deck[r] != 0){         //此位置已经有牌,需要重新产生位置
            r = rand() % 52;
        }    
        Deck[r] = card;         //card号牌存入Deck中
    }
    
    cout<<"play1\t play2\t play3\t play4\n";
    cout<<"------------------------------------------------\n";
    //输出
    for(int i=0; i<52; i++){
        cout<<pok_C[(Deck[i]-1)/13]<<pok_N[(Deck[i]-1)/13]<<\t;
        if(i%4 == 3){       //从0开始.(0,1,2,3)
            cout<<endl;
        }
    }

    return 0;                                                 
}

运行结果:

技术分享图片

 

扑克牌发牌程序。给四个玩家发牌(不含大小王),要求每次发的牌都不一样。

原文:https://www.cnblogs.com/52yu/p/12931534.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!