• 牌组


    三个人头牛的牌组:

    #include<stdio.h>
    #include<string.h>
    #include<time.h>
    typedef struct  
    {
        char suit [5];
        char face [6];
     }pai;
     void fuzhi(pai *a);/*给牌组赋值*/ 
     void dex(int *a);/*给牌组下标初始化*/
     void xipai(int *a); /*打乱下标*/
     void fapai(pai *a,int *b,int n);/*发一定数目的牌*/
     int main()
     {
         pai one[52];
         int index[52];
         fuzhi(one);
         dex(index);
         xipai(index);
         fapai(one,index,15);
         return 0;
     }
     void fuzhi(pai *a)
     {
         char *n[]={"1","2","3","4","5","6","7","8","9","10","J","Q","K"};
         char *h[]={"红桃","黑桃","方片","梅花"}; 
         int i;
         for(i=0;i<52;i++)
         {
             strcpy(a[i].suit,n[i%13]);
             strcpy(a[i].face,h[i/13]);
         }
     }
     void fapai(pai *a,int *b,int n)
     {
         int i=0,j=0;
         for(i=0;i<n;i++)
        {
             printf("%s  %s
    ",a[b[i]].suit,a[b[i]].face);
             j++;
             if(j%5==0)
             printf("
    ");
        }
     }
      void dex(int *a)
    {
          int i=0;
          for(i=0;i<52;i++)
          {
              a[i]=i;
          }
    }
      void xipai(int *a)
    {
         int i=0,j=0,temp=0;
         srand(time(NULL));
         for(i=0;i<52;i++)
         {
             j=rand()%52;
             if(i!=j)
             {
                 temp=a[j];
                 a[j]=a[i];
                 a[i]=temp;
             }
         }
    } 

    总结:建立52个结构体做为52张牌(没有大小王),在定义一个长度为52的整形数组,作为牌的下标。

      洗牌的技巧:先给下标数组赋初值1-52,随机产生两个数,让着两个数作为下标数组的下标,让这两个元素的值互换,通过产生52次,交换52次,足以打乱牌下标的序号。

      定义字符数组时,注意字符串结束标志也是占一个字符长度大小的,适当定义大点,别越界。

      给字符串赋值,不能用=号,因为不能给数组名赋值,它只代表一个地址,所以要用strcpy函数,将一个字符串赋值给另一个字符串,strcpy(a,b)将b复制给a.

  • 相关阅读:
    js变量的作用域问题
    HTML网页公用头部与尾部的一些方法
    拖动对象ondrag
    子div设置float后导致父div无法自动撑开的问题
    js像素运算问题
    js自动轮播图片的两种循环方法(原创)
    display:none显示和隐藏
    Linux shell脚本基础学习详细介绍(完整版)一
    java技术思维导图(转载)
    VIM编辑命令的技巧
  • 原文地址:https://www.cnblogs.com/TX980502/p/6516699.html
Copyright © 2020-2023  润新知