设为首页 加入收藏

TOP

C语言自动发牌程序代码解析(一)
2018-11-20 22:09:34 】 浏览:298
Tags:语言 自动 发牌 程序 代码 解析

一副扑克有52张牌,打桥牌时应将牌分给4个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S (Spaces)表示,红桃用H (Hearts)表示,方块用D (Diamonds)表示,梅花用C (Clubs)表示。


按照打桥牌的规定,每人应当有13张牌。在人工发牌时,先进行洗牌,然后将洗好的牌按一定的顺序发给每一个人。为了便于计算机模拟,可将人工方式的发牌过程加以修改:先确定好发牌顺序:1、2、3、4;将52张牌顺序编号:黑桃2对应数字0,红桃2对应数字1,方块2对应数字2,梅花2对应数字3,黑桃3对应数字4,红桃3对应数字5,……; 然后从52张牌中随机为每个人抽牌。

下面是完整的代码:


#include<stdio.h> 
#include<stdlib.h> 
#include<time.h>
 
int main()
{
    int a[60];
    int b[60];
    int w = 0;
    int wi,wj,wii;
    int i,j,index,x=0,m;
    for(i=0;i<54;i++)
        a[i]=i+1;
    srand((unsigned)time(0));
    for(i=0;i<54;)
    {
        index=rand()%54;
        if(a[index]!=0)
        {
            b[i]=a[index];
            //printf("%d ",b[i]);
            a[index]=0;
            ++i;
        }
    }
    printf("\n说明:\n");
    printf("*******************\n");
    printf("**    红桃 %c    ",3);
    printf("**\n");
    printf("**    方块 %c    ",4);
    printf("**\n");
    printf("**    梅花 %c    ",5);
    printf("**\n");
    printf("**    黑桃 %c    ",6);
    printf("**\n");
    printf("**    大王 A    **\n**    小王 a    **\n");
    printf("*******************\n");
    printf("\n请输入打牌人数:\n");
    scanf("%d",&w);
    wi = 54/w;
    wj = 54%w;
    //printf("%d,%d",wi,wj);
    for (j = 0;j < w;j++)
    {
        m = 0;
        printf("\n\n第%d个人的牌\n",j+1);
        wj --;
        if (wj>=0)
            wii = wi + 1;
        else
            wii = wi;
 
        //红桃
        printf("红桃 %c ",3);
        printf(":");
        for(i = j*wii;i<(j+1)*wii;i++)
        {
            if (b[i]<=13&&b[i]>0)
            {
                m++;
                if (b[i]==11)
                    printf("J ");
                else if (b[i]==12)
                    printf("Q ");
                else if (b[i]==13)
                    printf("K ");
                else
  &

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言邮票组合代码解析 下一篇Python内置方法详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目