随机算法的简单使用-----麻将牌的生成

      算法研究 2005-9-18 23:42

/*
13张牌的麻将
目前实现包括洗牌 分排 各个牌的状态的管理
*/

//麻将总数
var totalCount:Number = 136;
//类型总数
var typeCount:Number = 34;
//每种类型的个数
var typeNum:Number = 4;
/////////
//所有牌的存储
var rand:Array = new Array(totalCount);
//所有牌的状态 每张牌的状态-1:出手的牌 0:未抓的牌 1:在手中的牌
var randState:Array = new Array(totalCount);

//用于洗牌的临时数组
var state_ar:Array =new Array(typeCount)
//每个成员手中的牌
var member_ar:Array =new Array(typeNum);
/////////
//初始化数组
for(var i=0;i<totalCount;i++)
{
    state_ar[i] = 0;
    randState[i] = 0;
}
for(var i=0;i<typeNum;i++)
{
    member_ar[i] = new Array();
}
/////////////////

for(var i=0;i<totalCount;i++)
{
    rand[i] = random(typeCount);
    
    if(state_ar[i]<typeNum)
    {
        state_ar[i]++;
    }
    else
    {
        while(state_ar[i]>=typeNum)
        {
            rand[i] = random(typeCount);
        }
    }
    //前12张
    if(i < 48)
    {
        member_ar[int(i/4)%4].push(rand[i]);
        randState[i] = 1;
    }
    else
    //单张
    if(i > 47 && i < 53)
    {
        member_ar[i % 4].push(rand[i]);
        randState[i] = 1;
    }
    
}
////////////////////////////////////
//洗过的牌
trace(rand);
trace('----------------------------')
//庄家抓的牌
trace(member_ar[0]);
trace('----------------------------')
//第一个下家的牌
trace(member_ar[1]);

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}