棋牌平台開發教程之鬥地主常用演算法

來源:互聯網
上載者:User

標籤:相同   .com   交換   哪些   targe   get   選擇   str   類比   

首先,要弄清楚鬥地主的牌型有哪些。可以參考QQ遊戲給出的介紹,如下:

        火箭:即雙王(大王和小王),最大的牌。

        炸彈:四張同數值牌(如四個 7 )。

        單牌:單個牌(如紅桃 5 )。

        對牌:數值相同的兩張牌(如梅花 4+ 方塊 4 )。

        三張牌:數值相同的三張牌(如三個 J )。

        三帶一:數值相同的三張牌 + 一張單牌或一對牌。例如: 333+6 或 444+99 

        單順:五張或更多的連續單牌(如: 45678 或 78910JQK )。不包括 2 點和雙王。

        雙順:三對或更多的連續對牌(如: 334455 、 7788991010JJ )。不包括 2 點和雙王。 

       三順:二個或更多的連續三張牌(如: 333444 、 555666777888 )。不包括 2 點和雙王。

        飛機帶翅膀:三順+同數量的單牌(或同數量的對牌)。 

        如: 444555+79 或 333444555+7799JJ 

        四帶二:四張牌+兩手牌。(注意:四帶二不是炸彈)。

       如: 5555 + 3 + 8 或 4444 + 55 + 77 。

    其次,設計CRobot類。

        屬性包括:原始牌(數) ,當前牌(數) ,前一輪出牌(數) ,當前出牌(數) ,當前分數 ,是否Pass ,等待時間。

        方法包括:獲得原始牌(數),牌面類型函數 ,排序函數 ,按牌面類型排序函數,出牌函數。

    最後,分牌演算法。怎樣類比人工洗牌,這是一個難題。不過這難不倒我。

        先將54張牌分成6 * 9的矩陣。

        (1) 交換相鄰的兩行,1和2,3和4,5和6 交換。

        (2) 交換相鄰的兩列,1和2,3和4,5和6,7和8 交換。

        (3) 隨即選擇兩行兩列進行交換。

        以上步驟重複50~100次。然後依次取第一個17張為玩家1的牌,第二個17張為玩家2的牌,第三個17張為玩家3的牌,剩餘的3張為底    牌。OK!

    具體的細節可以去這裡棋牌源碼架設 www.yasewl.com

棋牌平台開發教程之鬥地主常用演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.