毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

VC++长沙麻将毕业设计论文 第4页

更新时间:2008-4-19:  来源:毕业论文

VC++长沙麻将毕业设计论文 第4页

2.3算法的分析

数据结构:麻将的数字表示

用数字035表示麻将牌,其中08代表一万到九万,917代表一条到九条,1826代表一筒到九筒,27代表东风,28代表南风,29代表西风,30代表北风,31代表中,32代表发,33代表白,34代表春夏秋冬,35代表梅竹兰菊

 

见下表

 

============================================

 0    1     2   3    4    5    6    7    8

============================================

一万 二万 三万 四万 五万 辣万 七万 八万 九万

============================================

 9    10   11   12   13   14   15   16   17

============================================

一条 二条 三条 四条 五条 辣条 七条 八条 九条

============================================

18    19   20   21   22   23   24   25   26

============================================

一筒 二筒 三筒 四筒 五筒 辣筒 七筒 八筒 九筒

============================================

27    28   29   30   31   32   33   34   35

============================================

东风 南风 西风 北风 红中 发财 白板  1  2

============================================

 

每个数字出现四次,代表四张牌,洗牌时采用随机算法提供牌墙

 

牌墙数据结构:

 

char SEAT[4][3] =

           {"",

            "",

            "西",

            ""};

 

const char FENG[7][3] =

           {"",

           "",

           "西",

           "",

           "",

           "",

           ""};

 

const char PAI[3][3] =

           {"",

           "",

           ""};

 

const POINT ZhuangPos[4]=

{   {5,500},

    {30,  5},

    {760,20},

    {760,470}

};

const POINT SeatPos[4]=

{   {35,500},

    {30, 35},

    {730,20},

    {760,440}

};

const POINT OtherPaiPos[3] =

{   {760,410},

    {700, 20},

    {30 , 60},

};

 

const POINT ChuPaiPos[4] =

{   { 360,350},

    {  50,300},

    { 360,40},

  { 650,300}};

 

玩家数据结构:

玩家wanjia{

     门风:

        menfeng:(27282930

     杠:

        gangpai{

        pai:033

        mingAn:0|1

              }

       gangarr[0..3]:gangpai(最多四个杠,数字表示杠的牌,结构体第二位的0表示明杠,1表示暗杠)

     碰:pengpai[0..3]:0~33最多四个碰牌

     吃:

        chipai{

           chimin:(0~6,9~15,18~24)

           chimax:(2~8,11~17,20~26)

              }吃牌中只用记录顺子的收尾即可

        chiarr[0..3]chipai(最多有三个吃牌)

      花牌:08(初始化为0,每摸到一个花牌加一)

      手牌:paiInHand{

               pai[0..13],

               num:1,4,7,10,13

                     }

      要牌pai[13]:除庄家外,初始化为-1,待摸牌上手(吃牌,碰牌,杠牌摸牌,任何一家打牌)后,将对应的牌值赋值给要牌,要牌为玩家需要处理牌的标志(当非负时),当玩家处理完牌后,将牌整理后,将要牌置-1

 

}

当要牌置位(非负)时,要对手牌进行胡牌判断:

由于手牌已经除掉了大量的碰杠吃等情况,简化的胡牌算法:

先对pai数组加上要牌一起排序;

然后用递归算法判断是否胡牌;

最后判断是否为7,十三么,全不靠牌型:(注,这些牌型一般不容易胡,故番数也不小哦,^_^

if(num=13)

{

  if(pai[0]==pai[1]&pai[2]==pai[3]&pai[4]==pai[5]&pai[6]==pai[7]&pai[8]==pai[9]&pai[10]==pai[11]&pai[12]==pai[13])

    return 1;//七对

 

  dblpos=1;  //记录数组中对牌的位置;-1为没有对牌

  dblnum0;//对的个数(如果超过两个对(可能是一个刻子)则不能胡十三么,全不靠牌型)

  for(i=0;i<14;i++}

   {

     if(pai[i]==pai[i+1])

       {

           dblpos=i;

           dblnum++;

       }

      if(dblnum>1) break;

   }

 

 

   if(dblnum==1) //可能为十三么

    {

       tirteen=1;

       for(i=0;i<14;i++)

       {

          if(pai[i]>0&[pai]<8)

            {

                tirteen=0;

                break;

            }

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

VC++长沙麻将毕业设计论文 第4页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。