首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> 其他编程 -> 通用算法 -> 文章内容 退出登录 用户管理
栏目导航
· VC# 技术 · Delphi技术
· Java技术 · 通用算法
· 编程相关
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
麻将洗牌算法及实现
作者:不详  来源:vscodes.com整理  发布时间:2006-8-13 21:48:49  发布人:Polaris

减小字体 增大字体

麻将洗牌算法及实现

/*-----------------------------------------------------------------------------
*该函数为牌墙洗牌
*先分配一个temparr[143]的数组(牌堆),依次赋值为0~35,每个数字的个数为4个;
* 设置剩余牌数为144;
* 当剩余牌数不为0时:
*   产生一个随机数n;
*   将n模去剩余牌数再加一赋值给num;
* 在牌堆里找到第num个牌,存进牌墙中;
*
*
*作者:yutian(于恬)
*E_main:yution@126.com
*
*作者声明:本代码为学习时编写的代码,大家可以随意转贴及编译修改
*但不得用于商业用途和赌博,作者保留一切权力
******************************************************************************/

#include <math.h>
#include <time.h>
#include <stdlib.h>

int arr[143];

int main()
{
  system("date +%H%M%S%N");
   int temparr[143];
   int i,j,rempai;
  
   for(i=0;i<144;i++)
    {
       arr[i]=-2;
    }
   j=0;
   rempai=144;
  
  for(i=0;i<144;i++)
   {
    temparr[i]=i/4;
   }
 
int count=0;

   for(i=0;i<0;i++)
    {
    if(count==8)
     {
        printf(" ");
        count=0;
     }
      printf("%d  ",temparr[i]);
     count++;
    } 
//printf(" ");

  while(rempai)
  {
    srand((unsigned)time(NULL));
    int num=random()%rempai+1;

    for(i=0;i<144;i++)
      {
        if(temparr[i]!=-1) num--;
       
        if(!num)
          {
            arr[j]=temparr[i];
            j++;
            rempai--;
            temparr[i]=-1;
            break;
          }
      }
  }

  system("date +%H%M%S%N");
  count=0;
 
  for(i=0;i<144;i++)
   {
    if(count==8)
     {
        printf(" ");
        count=0;
     }
    printf("%d  ",arr[i]);
    count++;
   }
printf(" ");
printf(" ");
}

在CentOS上编译通过,PIII处理器,处理的时间(不包括打印部分)不超过20毫秒,一般落在15~17毫秒之间

End of《麻将洗牌算法及实现》

[] [返回上一页] [打 印] [收 藏]
下一篇文章:麻将规则简介
 
∷相关“麻将洗牌算法及实现”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.