有:二、三、四、五、六万加上一对八万。
我们知道至少可以胡一,四,七万这三张牌。但我用程序只做到了判断四、七万是可胡的牌,(先把二、三、四万作为已经组成好了的牌)。现在如何让程序知道一万也可以胡?

解决方案 »

  1.   

    写一个判断是否胡牌的函数 
    Function CheckHu(Pai:Array of Char):Boolean;
    做个循环的函数,把一到九都放进去判断,是否已经糊了
      

  2.   

    fj218(fj218) 朋友:在你的第三步中,剩下的十二张牌需要分析是否组成了四组,每组三张牌。
    这时,程序分析出二三四万组成了一组牌,一五六万却不能组合……
    这里是否需要用到递归?
      

  3.   

    还要我说下去:(假设这14张牌为清一色)
    把这个有14张牌的数组a[1..14]从小到大排列,从a[3]开始判断起,判断有无三张大小一样的牌,有则将三张牌清零,无则判断a[4]以后又没有比a[3]大一点的牌,无则不能胡牌,有则判断也没有比a[3]大两点的牌,无则不能胡牌,有则将a[3]、比a[3]大一点的牌,比a[3]大两点的牌清零,重新排序,然后从a[6]开始判断,直至a[14]为零,则胡牌。当然这只是思路,还有些地方可以将算法优化,你自己动动脑筋琢磨琢磨吧。
      

  4.   

    fj218(fj218) 朋友:那么如下牌型:二万、二万、二万、三万、四万、五万、六万,七万、七万、七万,其余为组合好的条子两个连张。若来六万,在扫描对子牌时,就可以发现二万、七万均存在对子。以这两个牌作对子是不能胡牌的。若来五万,也存在三种对子,却只能以七万为对子胡牌。我看还是需要用递归穷举所有可能组合。而我们这里的打法与普通麻将还有一点点不同:三万一对与三筒一个是可以组合成一付牌的,(即点数相同的两种牌也可以组成一付牌),性质与三、四、五万组成一付牌一样。这时,就连从小到大排序也不好办……
      

  5.   

    看来帖子已经好久了
    不知道楼主是否已经解决问题了
    如还没有,可以发邮件[email protected]
    我做过关于麻将的程序
      

  6.   

    to myhero811104:
    可否给我一份程序看看?可以实现网络对战么?
      

  7.   

    to lovefox_zoe(爱情狐狸):
     我是用java帮别人写的手机麻将游戏,有版权问题,对不起,程序不能发给你,而且没有网络功能,如果需要我可以帮你说说胡牌的算法而已
      

  8.   

    引用:
       h2yang(小青) ( ) 信誉:99  2003-6-25 1:18:15  得分:0    .............*** 而我们这里的打法与普通麻将还有一点点不同:三万一对与三筒一个是可以组合成一付牌的,
    (即点数相同的两种牌也可以组成一付牌),性质与三、四、五万组成一付牌一样。这时,就连从小到大排序也不好办……^这就是个问题了!另:
       糊牌后的计翻算分及电脑对手的AI问题,欢迎继续讨论下去...