• C语言的随机发牌程序(红桃、黑桃、梅花、方块)


    做一个随机发牌的C语言程序,供大家学习,思考。

    未做任何注释,有测试时候留下的一些输出语句,一遍方便测试。

    /*
    author:nunu
    qq:398269786
    */
    #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("
    说明:
    ");
    	printf("*******************
    ");
    	printf("**    红桃 %c     ",3);
    	printf("**
    ");
    	printf("**    方块 %c     ",4);
    	printf("**
    ");
    	printf("**    梅花 %c     ",5);
    	printf("**
    ");
    	printf("**    黑桃 %c     ",6);
    	printf("**
    ");
    	printf("**    大王 A     **
    **    小王 a     **
    ");
    	printf("*******************
    ");
    	printf("
    请输入打牌人数:
    ");
    	scanf("%d",&w);
    	wi = 54/w;
    	wj = 54%w;
    	//printf("%d,%d",wi,wj);
    	for (j = 0;j < w;j++)
    	{
    		m = 0;
    		printf("
    
    第%d个人的牌
    ",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
    				printf("%d ",b[i]);
    			}
    		}
    
    		
    		//方块 
    		printf("
    方块 %c ",4);
    		printf(":");
    		for(i = j*wii;i<(j+1)*wii;i++)
    		{
    			if (b[i]<=26&&b[i]>13) 
    			{
    				m++;
    				b[i] = b[i]-13;
    				if (b[i]==11)
    					printf("J ");
    				else if (b[i]==12)
    					printf("Q ");
    				else if (b[i]==13)
    					printf("K ");
    				else
    				printf("%d ",b[i]);
    			}
    		}
    
    		//梅花 
    		printf("
    梅花 %c ",5);
    		printf(":");
    		for(i = j*wii;i<(j+1)*wii;i++)
    		{
    			
    			if (b[i]<=39&&b[i]>26) 
    			{
    				m++;
    				b[i] = b[i]-26;
    				if (b[i]==11)
    					printf("J ");
    				else if (b[i]==12)
    					printf("Q ");
    				else if (b[i]==13)
    					printf("K ");
    				else
    				printf("%d ",b[i]);
    			}
    		}
    		//黑桃 
    		printf("
    黑桃 %c ",6);
    		printf(":");
    		for(i = j*wii;i<(j+1)*wii;i++)
    		{
    			if (b[i]<=52&&b[i]>39) 
    			{
    				m++;
    				b[i] = b[i]-39;
    				if (b[i]==11)
    					printf("J ");
    				else if (b[i]==12)
    					printf("Q ");
    				else if (b[i]==13)
    					printf("K ");
    				else
    				printf("%d ",b[i]);
    			}
    		}
    		//大小王 
    		printf("
    大小王 A or a :");
    		for(i = j*wii;i<=(j+1)*wii;i++)
    		{
    			if (b[i]==53)
    			{
    				m++;
    				printf("A ");
    			}
    			if (b[i]==54)
    			{
    				m++;
    				printf("a ");
    			}
    		}
    		printf("
    总共:%d张牌!!!",m);
    	}
    	
    }
    

    测试结果,由于屏幕显示有限,我只做2个人分牌的测试,其他的自己测试吧、

  • 相关阅读:
    1.Math函数对象
    1.日期与时间
    使用object literal替换switch
    Array数组去重
    flexbox弹性布局
    web移动端一些常用知识
    解决网页ICON图标无法显示的问题
    观察者模式和发布订阅模式的区别
    JS延迟加载的几种方式
    前端 api 请求缓存方案
  • 原文地址:https://www.cnblogs.com/acmwangpeng/p/5601844.html
Copyright © 2020-2023  润新知