Re: [問題] 以Java做麻將判別胡牌或聽牌的程式

看板java作者 (叔叔你人真好)時間17年前 (2008/06/11 23:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《ChonPiggy (崇小豬)》之銘言: : 12344456777999 123 這樣.. : 一開始把444 777 999 拿掉.. : 剩下123 56 123 這樣也不能胡了呀@@ : 我到底該怎麼判斷才好.. : 或者應該是其他方式? 我會用第二個方法,不過修改一點... 11223344456777999 先抽出三張的 ([444][777][999]) 剩 11223356 然後抽出順子 ([444][777][999]) ([123][123]) 剩 [56] 若剩下的牌多過兩張,則不能胡 若剩下的兩張為將眼 -> 胡牌 看看剩下兩張牌 (i, j) 的 j-i 值 j-i > 2,不能胡 j-i == 2,查看三張組裡有沒有在中間的牌,有的話即可湊回順子和將眼,胡牌 例: 如剩下的是 3, 5.... 在三張中有 [444],可湊成 [345][44] j-i == 1,查看三張組中有沒有 (i-1) 或 (j+1) 的牌,有即胡... 大概像這樣,不過不知道能否應付所有的牌型 :P ==== 加按 ==== 哈哈,睡到床上後想到一個不能應付的例子: 444 777 XXX XXX 35678 XXX 為不同花色的三張或順子 (麻將嘛....) 依上面的情況一排... 啊 444 777 XXX XXX 567 (3,8) 不能胡? 壞了... 這個情況,就要從抽完三張後重新再來,把剩下的牌 由大至小排序 : ([444] [777]) (87653) (XXX XXX) <-- 這一堆永遠不用理會 然後也是抽順子... ([444] [777]) ([876]) 剩 (5,3) 這樣就能胡了... 所以抽順子那邊要先順序抽一次看看能不能胡,不能的話倒轉順序抽一次看看 ==== 加按完畢,睡覺去 XD 不知道會否又想到一些偵測不到的牌型 XD ==== -- 勁過呂布的勁過相簿... http://www.pixnet.net/superlubu 亂七八糟的,不好意思 m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.218.38.49 ※ 編輯: superlubu 來自: 203.218.38.49 (06/12 00:08)

06/12 00:10, , 1F
這方法感覺也不錯 不過我後面就有點亂了@@我先試試T大的
06/12 00:10, 1F
文章代碼(AID): #18J_A0pX (java)
文章代碼(AID): #18J_A0pX (java)