关于麻将算法问题的再讨论
关于麻将算法在
http://www.csdn.net/expert/topic/106/106597.shtm
有了很好的讨论
但是在实现部分遇到了许多问题
下面是我与winsky大哥的QQ中讨论了一些问题
请各位费心看看
2001-05-17 13:30:05 高寿
哦
来信关于顺子还是连张的问题好象不是个问题,如果有将牌则只要判断概率就自动解决了.
2001-05-16 13:32:58 HolyFire
怎么说呢,如果有两个二万和一个三万,如何判断呢
2001-05-17 13:34:57 高寿
那就要看剩余的1万4万和2万有几张,你得到这3张牌的概率分别有多少了,如果2万还有张,1、4万只有1张则保留2万否则打掉不就行了?
2001-05-17 13:35:24 高寿
那就要看剩余的1万4万和2万有几张,你得到这3张牌的概率分别有多少了,如果2万还有2张,1、4万只有1张,则保留2万否则打掉不就行了?
2001-05-16 13:39:31 HolyFire
如果一万二万四万都有两张呢?而且如果别的全部是三张和两张做顺子好象不划算。
2001-05-17 13:40:02 高寿
在概率相同的情况下看番数,在csdn的讨论中已经提到过了:)或者用概率和番数的乘积判断。
2001-05-16 13:43:07 HolyFire
哦,那还是要进行番数的判断啊,这个算法不太简单哦
2001-05-17 13:42:12 高寿
大体上还是有简单思路的。
2001-05-16 13:45:04 HolyFire
好的,谢谢你,有不懂的地方还要向你请教
2001-05-17 13:46:11 高寿
建议你先动手写算法,遇到具体问题再具体解决,不要事先考虑太多,这样如果时间不够用至少还有个不成熟的算法可用,否则可能一事无成。最后再做界面。
2001-05-16 13:51:08 HolyFire
我就是感到无处下手啊,能不能给些提示,界面什么的我能搞定,算法写了快一个星期了还是没有进展,就连数据模型也建立不好
2001-05-17 13:55:43 高寿
不知道不考虑番数的算法你是否有点思路了?
2001-05-16 13:59:17 HolyFire
如果是凑牌的话是很简单,看看所需牌还有几张,越多几率越大,优先顺子因为成牌几率高
2001-05-17 13:58:52 高寿
先把这个算法写出来,后面就好办了。
2001-05-16 14:02:20 HolyFire
这个算法,已经快实现了,就是别的问题了,还要考虑牌是不是自摸的,还是很麻烦的
2001-05-17 14:03:53 高寿
番数的问题我还是没有好好研究,似乎应该建立一个筛选机制,在打牌的过程中就先把不可能做成的番筛选掉。
2001-05-16 14:07:29 HolyFire
我现在对番数的处理还不太明白,好象一幅牌里还能有好几种牌型混合的
2001-05-17 14:10:02 高寿
对呀,我还没有认真考虑这个问题,如果不着急,再到csdn开个帖子比较好,可以抽空再研究,现在我的思路也不太成型。
2001-05-16 14:13:21 HolyFire
好吧,也只好如此了,我去CSDN开个300分的贴子,老哥谢谢你的帮忙罗
2001-05-17 14:12:16 高寿
为什么你没有考虑作弊的打法?
2001-05-16 14:15:36 HolyFire
作弊打法也要考虑这些事的啊
问题点数:300、回复次数:47Top
1 楼ginkgoboy(彝族舞曲)回复于 2001-05-16 14:39:00 得分 10
有点意思,可惜我麻将不怎么会Top
2 楼ed9er(始祖鸟)回复于 2001-05-16 14:48:00 得分 10
我觉得这里面没什么太艰深的算法,但应该先去买一本麻将大全之类的书(最好是支持全国麻将协会标准的),如果要支持i18n的话就比较麻烦了,各地打法差异太大……Top
3 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-17 09:34:00 得分 0
upTop
4 楼gzpbx(郭半仙)回复于 2001-05-17 20:03:00 得分 10
做个沈阳打法的麻将,这对净化社会空气已有好处!Top
5 楼yeqiufeng(叶秋枫)回复于 2001-05-17 20:07:00 得分 10
那当然了
作弊是麻将的很大卖点
Top
6 楼luhongjun(过江项羽)回复于 2001-05-17 20:26:00 得分 10
主要你自己要先成为麻将高手。
你应该给用户能选择使用那种方式完法的权利。
Top
7 楼wjzhuang(程序猪)回复于 2001-05-18 00:02:00 得分 10
不懂麻将,怎么看也看不懂!555~~~~~~~~~Top
8 楼kabob(kk.Chen)回复于 2001-05-18 01:46:00 得分 10
关注~~~
UP
~~明天俺再来Top
9 楼8080(````www.9bu.com````)回复于 2001-05-18 08:10:00 得分 10
关注Top
10 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-18 08:18:00 得分 0
算法并不简单,比如一副很普通的牌也可能有高番,因为存在牌型组合
断幺九或者全带幺可以和一般高,三色同顺,大四车混合
怦碰胡和混一色混合
一气通顺有可能成为大车轮等等
加上有宝牌(原子)
特殊一点就有自模清一色的四暗刻,就是青老头Top
11 楼xrbeck(ALEK)回复于 2001-05-18 08:45:00 得分 10
呵呵。越说头越昏。。。Top
12 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-18 08:52:00 得分 0
是啊,我的头现在昏昏的,回答问题都不畅快了,昨天在灌水乐园还和人吵架,以前可从不这样。Top
13 楼ALNG(?)回复于 2001-05-18 12:03:00 得分 10
同情!Top
14 楼Winsky(bcb_user@sina.com)回复于 2001-05-18 12:17:00 得分 100
呵呵,未经同意擅自公开谈话内容,吵一架先.:)
现在还没有新想法,有空再来研究:)Top
15 楼shally5(我在一旁静静的看着你)回复于 2001-05-18 16:42:00 得分 50
我有一个DOS下的BASIC编的麻将程序,是一个台湾人写的,显示方式是CGA;吃碰杠胡庄等都有啊!
我有一个DOS下的BASIC编的麻将程序,是一个台湾人写的,显示方式是CGA;吃碰杠胡庄等都有啊!
我有一个DOS下的BASIC编的麻将程序,是一个台湾人写的,显示方式是CGA;吃碰杠胡庄等都有啊!
Top
16 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-18 16:57:00 得分 0
OK,不管如何也可以参考一下思路啊。
谢了
holyfire@sian.com.cnTop
17 楼lixiaolei(快乐)回复于 2001-05-18 17:06:00 得分 0
我很想看看to holyfire 我邮件地址是lixiaolei@fm365.com Top
18 楼shally5(我在一旁静静的看着你)回复于 2001-05-18 17:09:00 得分 0
能不能答应我一个条件啊!嘿嘿!
就是你编好后,第一时间发给我一份。Top
19 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-18 17:11:00 得分 0
ok,我会开放一部分源代码的。Top
20 楼shally5(我在一旁静静的看着你)回复于 2001-05-18 17:18:00 得分 0
查收EMAIL吧!mj.bas用老DOS 2.0-3.32版中的IBM的basica.com程序运行
或GWBASIC.COM程序运行
有问题对我说,你不说我怎么知道你要什么呢。。。。。。。。。。。哈哈
Top
21 楼shally5(我在一旁静静的看着你)回复于 2001-05-18 17:24:00 得分 0
如果没Basica.com程序我也可EMAIL给你啊!哈哈!Top
22 楼shally5(我在一旁静静的看着你)回复于 2001-05-18 23:30:00 得分 0
holyfire你的EMAIL地址对吗?我的信退回来两次了?
holyfire@sina.com.cnTop
23 楼enterzhuang(老庄)回复于 2001-05-19 00:32:00 得分 10
你编好后,第一时间发给我一份。 zhuangaaaa@21cn.comTop
24 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-19 08:47:00 得分 0
对的啊,你试试用holyfire.sina.comTop
25 楼shally5(我在一旁静静的看着你)回复于 2001-05-19 10:26:00 得分 0
我按holyfire.sina.com又发了一次,这次将basa格式转成ASCII格式了,
你查收吧。如果还不行我就只好在这里贴出来了。Top
26 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-19 10:35:00 得分 0
苦命啊,不能直接看源代码,不知如何察看呢,我用List的时候他总是说我非法调用。Top
27 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-21 08:45:00 得分 0
upTop
28 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-22 10:47:00 得分 0
upTop
29 楼shally5(我在一旁静静的看着你)回复于 2001-05-22 12:14:00 得分 0
(发了财的众神之焰)你那一个信箱收到的,我把ASCII的MJ.BAS再发给你,你一定没有从DOS时代走过来啊!Top
30 楼liuipiq()回复于 2001-05-22 20:58:00 得分 10
fdsafsdfTop
31 楼Winsky(bcb_user@sina.com)回复于 2001-05-22 23:28:00 得分 0
to holyfire(发了财的众神之焰)
有思路了吗?俺最近老加班,只能帮你提提神了.:)
Top
32 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-23 08:09:00 得分 0
我现在先将零零碎碎的东西做好,反正我的东西都是可以组合的,最后换个类就可以了。Top
33 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-24 08:57:00 得分 0
upTop
34 楼shally5(我在一旁静静的看着你)回复于 2001-05-24 11:33:00 得分 0
holyfire(发了财的众神之焰) 你的MJ编的怎么样了,麻将界面的素材都作好了吗?
Top
35 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-24 11:35:00 得分 0
麻将界面的素材都有
你的程序我还是没收到Top
36 楼shally5(我在一旁静静的看着你)回复于 2001-05-24 19:15:00 得分 0
把你的能收信的EMAIL地址给我,最好是163或263的EMAIL地址啊!
我把ASCII码的BAS的MJ程序发给你
Top
37 楼czylj(夭夭)回复于 2001-05-24 22:40:00 得分 0
upTop
38 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-25 08:18:00 得分 0
holyfire@chinaren.comTop
39 楼shally5(我在一旁静静的看着你)回复于 2001-05-25 09:17:00 得分 0
发出了,查收吧!Top
40 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-28 10:49:00 得分 0
收到了,但是没有一点注释,看的好恐怖。Top
41 楼yeqiufeng(叶秋枫)回复于 2001-05-28 11:00:00 得分 10
进度如何Top
42 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-28 11:12:00 得分 0
我编了一会以后,又从头开始设计了。Top
43 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-05-28 15:01:00 得分 0
我参阅了一些资料将麻将牌的一些资料列了出来,请各位补充一下
另外我将找到的资料整理了一下,不只那位兄弟感兴趣。
麻将牌:
种类:
万子牌
筒子牌
条子牌
风牌
三元牌
数牌 = 万子牌 +筒子牌 +条子牌
花牌
字牌 = 风牌 + 三元牌
老头牌 = 数牌 ( 编号 一 和 九 )
幺九牌 =老头牌 + 字牌
编号:
牌在各类牌的位子
数牌 一 到 九
风牌 一 到 四
三元牌 一 到 三
花牌 一 到 八
牌型组合:
对子:数牌或字牌同种两张 牌一 = 牌二
顺子:数牌同种三张 牌三 = 牌二 (编号 + 一) = 牌一 (编号 + 二)
刻子:数牌或字牌同种三张 牌一 = 牌二 = 牌三
碰后形成明刻
自摸形成暗刻
杠子:数牌或字牌同种四张 牌一 = 牌二 = 牌三 = 牌四
碰后形成明刻
自摸形成暗刻
面子:顺子 + 刻子 + 杠子
单骑:当手上的牌做成面子的牌后多余的那张
边搭:连续的两张同种数牌 牌一 (编号 = 一 ) 牌二 ( 编号 = 二 ) 或者牌一 (编号 = 八 ) 牌二 ( 编号 = 九 )
搭子:不是边搭的两张联系的同种数牌 牌一 = 牌二 ( 编号 + 一 )
嵌搭:中间隔一张的数牌同种两张 牌一 = 牌二 ( 编号 + 二 )
中间张:编号不为一和九的数牌
边张牌:编号为三或七的数牌
嵌张牌:顺子的中间那张牌Top
44 楼Adayuer(饭碗饭碗饭碗你在哪里?)回复于 2001-05-28 15:10:00 得分 10
我算法很差劲,不过麻将就更差劲了,嘿嘿,如果需要的话我同寝的兄弟到是乐此不疲,可惜他们的算法连我都不如,唉...难得两全其美呀Top
45 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-06-05 11:15:00 得分 0
和牌的基本牌型
11、123、123、123、123。
11、123、123、123、111(1111,下同)。
11、123、123、111、111。
11、123、111、111、111。
11、111、111、111、111。
和牌的特殊牌型
11、11、11、11、11、11、11(七对)。
1、1、1、1、1、1、1、1、1、1、1、1、11(十三幺)。
1、1、1、1、1、1、1、1、1、1、1、1、1、1(全不靠)。
(注:1=单张 11=将、对子 111=刻子 1111=杠 123=顺子)
现在就剩将牌型考虑到算法里了,Top
46 楼8080(````www.9bu.com````)回复于 2001-06-05 11:19:00 得分 10
11123456789999九连宝灯
22233344455566四连刻
Top
47 楼holyfire(谁最衰啊你最衰,谁最帅啊我最帅)回复于 2001-06-05 12:01:00 得分 0
11123456789999九连宝灯
对应牌型
11、123、123、123、111
22233344455566四连刻
对应牌型
11、111、111、111、111Top




