打麻将怎么算牌听了

在中国打麻将运气能帮大忙,在日本就真的要拼技术了
日本麻将的竞技性体现在哪里?
日本麻雀天凤八段,2011 年 1 月成为中国大陆第一批凤凰玩家,第一届大中华日本麻雀凤凰联赛第四名。
Q1:日本麻将是否比其他麻将规则更具有「竞技性」?
A1:日本麻将是当今世界上「竞技化」程度最高的麻将规则,亦是「竞技性」最高的麻将规则之一。
Q2:日本麻将的「竞技性」体现在哪里?
A2:「竞技性」体现在日本麻将规则体系引导了重视麻将本身「技术性」的打法,并且合理地丰富了不违反麻将牌理的技术。
1. 中日两国麻将竞技化程度对比
麻将在中国十分流行,但麻将竞技在中国算是新鲜事。外国麻将爱好者所了解的「中国麻将」,多是指国家体育总局 1998 年颁布的「国标麻将」,偶有媒体报导的麻将竞技比赛,也大多是使用的「国标麻将」规则,然而「国标麻将」与普通麻将爱好者所掌握的本地麻将有着极大的差别,差别有多大呢?大概相当于乒乓球与网球,升级与拱猪,中国象棋与国际象棋,德州与炸金花&&所以「国标麻将」在中国的受众比例十分有限,「中国麻将」的竞技化程度是相对较低的。
日本麻将基本保留了中国古典麻雀的原貌,一贯发展了近一个世纪,因而形成了中国所不具备的竞技化便利。日本竞技麻将各个派系、网络麻将平台、各地雀庄所使用的规则虽有差异,但其核心规则是一致的,并没有大量创造番种或者玩法,就连符底 20 符、门清加 10 符等规条都是 1929 年《日本麻雀标准规定》被确定并沿用至今,数十年来的发展使得相对统一的日本麻将规则深入坊间,日本的麻将爱好者可以自然的成为日本竞技麻将受众,打个比方,如果中国的电视台直播国标麻将比赛,中国人基本上看不懂,也就无从受到麻将竞技的熏陶,而日本则不会出现这种情况。
2. 中国麻将竞技化前景如何?
现阶段来看,中国麻将竞技化仍然有很长的路要走,主要努力的方向有为麻将正名、推广竞技麻将规则、推动麻将走进智运会等。随着国际麻将联盟(MIL)的成立,以及首届世界麻将运动会的临近,相信这条道路会越走越宽。
3. 如何看待一套麻将规则的「竞技性」?
回答这个问题首先需要区分一套麻将规则的「竞技性」与「技术性」。
所谓麻将的「技术」,凡是在规则范围内,能够提升成绩期望值的打法,都应该称为技术。从科学麻将的角度来讲,一套特定麻将规则应该分为的「麻将基本规则」与番种分值、结算法等「特定规则」,相应的这套规则的技术应划分为「麻将本身的通用技能」与「迎合特定规则的技巧」两个部分,举例说明:「麻将本身的通用技能」:诸如没有注意到对手碰了 8 万,一直听单钓 8 万,这是缺乏「专注力」,起手牌 2334578 万 2388899 饼没有选择打 8 万,这是「牌效率」不过关。「迎合特定规则的技巧」:诸如日本麻将中基于振听规则的「筋牌防守」、「引挂」技术,国标麻将中的「造绝张」战术等等。
「麻将本身的通用技能」体现的是选手对于牌局的观察、分析、计算的能力,无论是打什么麻将规则,自然是越强越能游刃有余;而「迎合特定规则的技巧」则是利用特定规则施展的特殊策略,离开了规则的土壤便不再适用。
一套麻将规则称得上有「竞技性」,需要丰富而不违反基本牌理的「技术性」,这就需要合理数量的「特定规则」来丰富对局场景,增加技术深度,更重要的是「特定规则」所导致的「迎合特定规则的技巧」不能冲淡甚至违背「麻将本身的通用技能」:
皆一制推倒和:只考察了「麻将本身的通用技能」,技术不够丰富。
中国各地地方麻将:由于存在大量为赌博而设计的加快对局进程、纯运气结算等规则,催生了冲淡甚至违背「麻将本身的通用技能」的技术,例如财神(百搭、癞子、混儿)极大的削弱了牌效率技术;限定和牌必须缺门 / 必须三门齐&/ 必须有一门花式达到若干张 / 必须一门花色不能超过若干张等规则导致了违反牌理的特定牌效率技术;通过和牌后的偶然事件决定分值翻倍的各种纯运气结算规则(如长沙麻将扎鸟)则相当于对「麻将本身的通用技能」进行随机干扰&&这些规则虽不同程度的具备技术性,但难称具备竞技性。&
国标麻将:因其番种体系过于复杂,使得该规则下「麻将本身的通用技能」碎片化,而「迎合特定规则的技巧」成为其主流技术,喧宾夺主,不能算是优秀的竞技麻将规则。(考虑到它是中国大陆唯一的竞技化规则,中国麻将竞技之路仍需要从推广该规则做起)&
日本麻将:日本麻将有比较科学的番种体系,提供了足够的技术性空间,同时本身也存在着冲淡甚至违背「麻将本身的通用技能」的元素,例如一发、里 dora、全面振听、食下等规则,但这些元素相互作用,形成了可以接受的,基本符合「麻将本身的通用技能」的特有技术体系,因此,相对于其他不甚完善的规则,更具备竞技性。
4. 日本麻将竞技性强是全铳制、振听等强调防守的因素决定的吗?
全铳制、振听等元素的确引导了日本麻将重视防御,其实重视防御本身并不具备优越性,只是中国大陆各地麻将普遍不重视防御,广大受众以抢和、贪自摸为第一要务,照搬中国麻将打法的日麻初学者一般都没有好下场,实际上日麻重视防御,只实现了懂或不懂弃和的区分度,高水平对局中,决定胜负的是对局势的把握,即要进攻还是要弃和的决断,这更多的需要「麻将本身的通用技能」
5. 日本麻将竞技性强是立直、食下等强调门前清的因素决定的吗?
立直、食下等元素确实引导了日本麻将重视门前清,但这同样不构成优越性,甚至,客观的说,是一种损害竞技性的规则(因为立直削弱了听牌判断、过度门清重视形成了违反副露牌理的打法等等),只是因为由于日本麻将门前清重视,使得组牌效率变得尤为重要,这催生了日本的麻将爱好者对组牌技巧&&牌效率的深入研究,换言之推动了整个麻将的竞技化、科学化,而在中国,牌效率研究在十年前还是空白,于是包括 @段昊在内的主流竞技麻将高手,都主张学习竞技麻将从日本麻将入手&&原因是更利于打好基础。
6. 如何修改日本麻将规则,使之成为竞技性更强的规则?
麻将规则制定是系统工程,牵一发而动全身,绝非增删一两个和种、调整一下分值就能完成,修改日本麻将规则的工程,还是交给岛国人民吧。
7. 如何修改中国麻将规则,使之成为竞技性更强的规则?
A. 考入国家体育总局,奋斗若干年成为主要分管领导
B. 加入国际麻将联盟,并成为规则委员会委员
C. 自编规则,并每年出资 500 万人民币举办比赛和推广
客官,这篇文章有意思吗?打麻将,我听了三六条,转了几圈,看到对家拿个三条就是不打,就一直想着三条三条,然后摸着个六条想也没想就打了出去,自摸呀,白白扔了。对家说,等我的三条了吧,我就是不打。够糗的吧
后才能发表评论
你可能喜欢的图片笑话
最受欢迎的爆笑笑话[Flash ActionScript 2.0/其余代码也可以.]关于麻将的听牌检测算法,总算是弄到了1秒以下…求大神们给一点改进建议.要抓狂了._imooo软件程序bug解决方案
[Flash ActionScript 2.0/其余代码也可以.]关于麻将的听牌检测算法,总算是弄到了1秒以下…求大神们给一点改进建议.要抓狂了.
[Flash ActionScript 2.0/其他代码也可以..]关于麻将的听牌检测算法,总算是弄到了1秒以下……求大神们给一点改进建议..要抓狂了..其实这个不仅是麻将,是因为某论坛活动需要所以做一个类似于麻将的游戏,和牌算法都是差不多的。
只不过牌改成4种数字(也是1-9各4张)以及东南西北(没有白发中了)
然后说一下这边的情况,现在最大的问题是:当Player摸到一张牌,然后显示出是否听牌的标志(用官话说就是是否能立直,用通俗的话说就是,摸到牌之后那个“听”字是否会亮起来)。
麻将的和牌程序其实不难写,用递归就可以,咱编写和牌程序最长也不超过3毫秒。
但是听牌的程序就稍微有点麻烦了,听牌的意思是,只要再摸一张牌,使该牌组构成和牌,就是听牌了。
而且实际应用中经常不仅仅判定一副牌是否听牌,而且还要输出所有待和之牌。(比如,2、2、2、3则输出1、3、4)
这样的话要把麻将库里的每一张牌(1,3,5,7以及11-19,21-29,31-39,41-49共40种)都要遍历一遍才可以所以耗时基本上等于3毫秒乘以40(当然也是最坏的情况),这就是120毫秒了。
然后接下来是更麻烦的事情,Player摸到一张牌后,再打出一张牌是否能听牌,牌组里一般是有14张的(算摸来的牌),这样还得把牌组里的牌都遍历一下,把每一张牌都考虑成打出的牌,然后检查牌组打出该牌后是否听牌。这样,又要把上述所需时间再乘以14,也就是1680毫秒,这样……就相当不能接受了。谁也不想摸完一张牌然后等上1.68秒后才有反应(毕竟每次摸牌后都要检测听牌,即使没听也得检测)。所以带着这个头疼的事实我就设法对算法进行改进。
首先我一开始的听牌程序是根据是否和牌和遍历牌库来进行设计的,一般来说听牌时待和牌至少是听牌牌组里的某张牌或者某张牌相邻的牌,所以我把不相邻的牌直接排除在外。这样算法能快一些,但是实际上没块多少,而且还不会影响到最坏的情况(尤其类似于九莲宝灯、四连刻这类清一色的牌型),所以基本没啥改进。
后来我就不在考虑从和牌方式入手了,我直接重新按照递归的方法去写检验一副牌是否听牌的程序,检测方式就跟代码里的注释那样了。不过听牌检测我没做改动,还是将手里的牌都遍历了一遍。这样我使用最坏情况的牌型测出来的时间大概是798毫秒。虽然短了很多但是还是不可接受。
所以问题来了……咱写的代码都很简单啦,希望大神们能帮忙看看哪里还有改进的建议。暂且不考虑国士无双和七对子这种特殊牌型。
另外我自己最后的2个想法,虽然有点累:
1、我想把所有清一色的牌型都直接存成数据(即听牌表),然后听牌时直接查。这样也不需要什么递归了……但是写数据工作量还很大,而且不排除有漏掉的情况。
2、就像处理检测一副牌组是否听牌的程序那样,再重新写检测一副牌打出某张牌之后是否进入听牌的程序,重新用递归写。既然用和牌程序来写听牌检测程序是个很糟糕的做法,那么用听牌检测程序来写检测打出某张牌后是否听牌的程序同样是个很糟糕的做法。不过据我初步试验,起始值太不好写了……
//牌号定义
//红:11-19
//绿:21-29
//黄:31-39
//紫:41-49
//东:1&南:3&西:5&北:7
//未定义:0,2,4,6,8,9,10,20,30,40,50及以上
function&test(f:Function,&n:Number)&{
//检验目标函数运算时间
var&t&=&getTimer();
for&(var&i&=&0;&i&=n;&i++)&{
trace(((getTimer()-t))/n+"ms");
function&copy(deck:Array):Array&{
//复制牌组
var&copied&=&[];
for&(var&i&=&0;&i&deck.&i++)&{
copied[i]&=&deck[i];
function&copyUnique(deck:Array):Array&{
//复制牌组,并且删除冗余牌
var&copied&=&[];
var&j&=&0;
for&(var&i&=&0;&i&deck.&i++)&{
if&(deck[i]&!=&copied[j-1])&{
copied[j]&=&deck[i];
function&copyExtend(deck:Array):Array&{
//复制牌组,删除冗余牌并向周围扩散1个数字
var&copied&=&[];
for&(var&i&=&0;&i&deck.&i++)&{
copied.push(deck[i]);
if&(deck[i]+1&10&&&&(deck[i]+1)%10&!=&0)&{
copied.push(deck[i]+1);
if&(deck[i]-1&10&&&&(deck[i]-1)%10&!=&0)&{
copied.push(deck[i]-1);
copied.sort();
return&copyUnique(copied);
function&haveTile(deck:Array,&tile:Number):Boolean&{
//判断牌组里是否有目标牌
for&(var&i&=&0;&i&deck.&i++)&{
if&(tile&==&deck[i])&{
function&countTile(deck:Array,&tile:Number):Number&{
//计算牌组里目标牌的数目
var&count&=&0;
for&(var&i&=&0;&i&deck.&i++)&{
if&(tile&==&deck[i])&{
function&isShun(deck:Array):Boolean&{
//判断长度为3的牌组是否成顺
if&(deck.length&!=&3)&{
deck.sort();
return&(deck[2]&==&deck[1]+1)&&&&(deck[1]&==&deck[0]+1);
function&isKe(deck:Array):Boolean&{
//判断长度为3的牌组是否成刻
if&(deck.length&!=&3)&{
return&(deck[2]&==&deck[1])&&&&(deck[1]&==&deck[0]);
function&isDui(deck:Array):Boolean&{
//判断长度为2的牌组是否成对
if&(deck.length&!=&2)&{
return&deck[1]&==&deck[0];
function&isKang(deck:Array):Boolean&{
//判断长度为4的牌组是否成杠
if&(deck.length&!=&4)&{
return&(deck[3]&==&deck[2])&&&&(deck[2]&==&deck[1])&&&&(deck[1]&==&deck[0]);
function&isKan(deck:Array):Boolean&{
//判断长度为2的牌组是否为砍张待和
if&(deck.length&!=&2)&{
deck.sort();
return&(deck[1]&==&deck[0]+2)&&&&(deck[0]%10&!=&9)&&&&(deck[0]&10);
function&isLiangMian(deck:Array):Boolean&{
//判断长度为2的牌组是否为两面待和
if&(deck.length&!=&2)&{
deck.sort();
return&(deck[1]&==&deck[0]+1)&&&&(deck[0]%10&!=&1)&&&&(deck[1]%10&!=&9);
function&isShangBian(deck:Array):Boolean&{
//判断长度为2的牌组是否为上边张待和(8、9,和7)
if&(deck.length&!=&2)&{
deck.sort();
return&(deck[1]&==&deck[0]+1)&&&&(deck[1]%10&==&9);
function&isXiaBian(deck:Array):Boolean&{
//判断长度为2的牌组是否为下边张待和(2、1,和3)
if&(deck.length&!=&2)&{
deck.sort();
return&(deck[1]&==&deck[0]+1)&&&&(deck[0]%10&==&1);
function&isHu(deck:Array):Boolean&{
//判断牌组(长度除以3余2)是否组成和牌
//已知最长耗时2.7459ms
if&(deck.length%3&!=&2)&{
if&(deck.length&==&2)&{
if&(isDui(deck))&{
var&extract_ke&=&cutKeEnum(deck);
for&(var&i&=&0;&i&extract_ke.&i++)&{
if&(isHu(extract_ke.remain[i]))&{
var&extract_shun&=&cutShunEnum(deck);
for&(var&i&=&0;&i&extract_shun.&i++)&{
if&(isHu(extract_shun.remain[i]))&{
//听牌算法
function&ting(deck:Array):Array&{
//判断牌组(长度除以3余1)是否听牌并输出所有待和之牌。
//遍历牌库里每一张牌,加入到牌组来判定是否和牌。
//已知最长耗时1751ms(太长了……)
var&tingArray&=&[];
var&tileArray&=&[11,&12,&13,&14,&15,&16,&17,&18,&19,&21,&22,&23,&24,&25,&26,&27,&28,&29,&31,&32,&33,&34,&35,&36,&37,&38,&39,&41,&42,&43,&44,&45,&46,&47,&48,&49,&1,&3,&5,&7];
for&(var&i&=&0;&i&tileArray.&i++)&{
var&m_deck&=&copy(deck);
m_deck.push(tileArray[i]);
if&(isHu(m_deck))&{
tingArray.push(tileArray[i]);
return&tingA
function&ting2(deck:Array):Array&{
//判断牌组(长度除以3余1)是否听牌并输出所有待和之牌。
//基于ting1算法,选择牌库中与牌堆相同或者差1的牌来进行判别,其他一律不判别
var&tingArray&=&[];
var&tileArray&=&copyExtend(deck);
for&(var&i&=&0;&i&tileArray.&i++)&{
var&m_deck&=&copy(deck);
m_deck.push(tileArray[i]);
if&(isHu(m_deck))&{
tingArray.push(tileArray[i]);
return&tingA
function&ting3(deck:Array):Array&{
//判断牌组(长度除以3余1或2)是否听牌并输出所有待和之牌。
//不通过判定和牌直接来判定是否听牌。
//单骑、一对、两面待、上边张、下边张、砍张则可以直接判定;
//长度为4的牌组进行对提取、刻提取和顺提取,然后将剩余牌型判定;
//长度大于4的牌组进行刻提取和顺提取,然后剩余牌型判定。
//已知最长耗时89ms(还是很长,不能接受,原因见后)
var&tingArray&=&[];
if&(deck.length%3&==&0)&{
return&[];
if&(deck.length&==&1)&{
return&[deck[0]];
if&(deck.length&==&2)&{
if&(isDui(deck))&{
return&[deck[0]];
if&(isKan(deck))&{
return&[deck[0]+1];
if&(isLiangMian(deck))&{
return&[deck[0]-1,&deck[1]+1];
if&(isShangBian(deck))&{
return&[deck[0]-1];
if&(isXiaBian(deck))&{
return&[deck[1]+1];
if&(deck.length&==&4)&{
var&extract_dui&=&cutDuiEnum(deck);
for&(var&i&=&0;&i&extract_dui.&i++)&{
tingArray=tingArray.concat(ting3(extract_dui.remain[i]));
var&extract_ke&=&cutKeEnum(deck);
for&(var&i&=&0;&i&extract_ke.&i++)&{
tingArray=tingArray.concat(ting3(extract_ke.remain[i]));
var&extract_shun&=&cutShunEnum(deck);
for&(var&i&=&0;&i&extract_shun.&i++)&{
tingArray=tingArray.concat(ting3(extract_shun.remain[i]));
if&(deck.length&4)&{
var&extract_ke&=&cutKeEnum(deck);
for&(var&i&=&0;&i&extract_ke.&i++)&{
tingArray=tingArray.concat(ting3(extract_ke.remain[i]));
var&extract_shun&=&cutShunEnum(deck);
for&(var&i&=&0;&i&extract_shun.&i++)&{
tingArray=tingArray.concat(ting3(extract_shun.remain[i]));
tingArray.sort();
return&copyUnique(tingArray);
//提取操作
function&cutTile(deck:Array,&tile:Number):Array&{
//从牌组中尝试提取目标牌(如果存在多个则只提取1个,如果不存在则不提取,返回剩下的牌组成的牌组)
var&cut&=&copy(deck);
for&(var&i&=&0;&i&=cut.length-1;&i++)&{
if&(cut[i]&==&tile)&{
cut.splice(i,&1);
function&cutDuiEnum(deck:Array):Object&{
//对提取操作。
//返回一个对象:
//count为成功进行对提取操作的次数;
//extract[n]为一次对提取操作中提取的牌构成的牌组;
//remain[n]为一次对提取操作中剩余的牌构成的牌组;
//n的取值范围为0到count-1。
deck.sort();
var&enum&=&new&Object();
var&uniqueDeck&=&copyUnique(deck);
enum.count&=&0;
enum.extract&=&[];
enum.remain&=&[];
for&(var&i&=&0;&i&uniqueDeck.&i++)&{
var&tile&=&uniqueDeck[i];
var&cut&=&copy(deck);
if&(countTile(cut,&tile)&=2)&{
cut&=&cutTile(cut,&tile);
cut&=&cutTile(cut,&tile);
enum.extract[enum.count]&=&[tile,&tile];
enum.remain[enum.count]&=&copy(cut);
enum.count++;
function&cutShunEnum(deck:Array):Object&{
//顺提取操作。
//返回一个对象:
//count为成功进行顺提取操作的次数;
//extract[n]为一次顺提取操作中提取的牌构成的牌组;
//remain[n]为一次顺提取操作中剩余的牌构成的牌组;
//n的取值范围为0到count-1。
//最长耗时950微秒。
deck.sort();
var&enum&=&new&Object();
var&uniqueDeck&=&copyUnique(deck);
enum.count&=&0;
enum.extract&=&[];
enum.remain&=&[];
for&(var&i&=&0;&i&uniqueDeck.length-2;&i++)&{
var&tile&=&uniqueDeck[i];
var&cut&=&copy(deck);
if&(haveTile(cut,&tile+1)&&&&haveTile(cut,&tile+2))&{
cut&=&cutTile(cut,&tile);
cut&=&cutTile(cut,&tile+1);
cut&=&cutTile(cut,&tile+2);
enum.extract[enum.count]&=&[tile,&tile+1,&tile+2];
enum.remain[enum.count]&=&copy(cut);
enum.count++;
function&cutKeEnum(deck:Array):Object&{
//刻提取操作。
//返回一个对象:
//count为成功进行刻提取操作的次数;
//extract[n]为一次刻提取操作中提取的牌构成的牌组;
//remain[n]为一次刻提取操作中剩余的牌构成的牌组;
//n的取值范围为0到count-1。
//最长耗时581微秒。
deck.sort();
var&enum&=&new&Object();
var&uniqueDeck&=&copyUnique(deck);
enum.count&=&0;
enum.extract&=&[];
enum.remain&=&[];
for&(var&i&=&0;&i&uniqueDeck.&i++)&{
var&tile&=&uniqueDeck[i];
var&cut&=&copy(deck);
if&(countTile(cut,&tile)&=3)&{
cut&=&cutTile(cut,&tile);
cut&=&cutTile(cut,&tile);
cut&=&cutTile(cut,&tile);
enum.extract[enum.count]&=&[tile,&tile,&tile];
enum.remain[enum.count]&=&copy(cut);
enum.count++;
/////////////////////
function&canLi(deck:Array,&tile:Number):Array&{
//判断抓到目标牌时,牌组能否打出一张牌进行立直,输出所有可以打出的牌。
//目前最短耗时798ms,使用ting3算法。
var&li_array&=&[];
var&m_deck&=&copy(deck);
m_deck.push(tile);
for&(var&i&=&0;&i&m_deck.&i++)&{
var&m_deck2&=&copy(m_deck);
m_deck2.splice(i,&1);
var&m_ting&=&ting3(m_deck2);
trace("cut&"+m_deck[i]+":&"+m_ting);
if&(m_ting.length&!=&0)&{
li_array.push(m_deck[i]);
return&li_
function&dispCut(n:Object)&{
//Debug用:输出提取对象的内容。
trace("Enum&count:"+n.count+"\n");
for&(var&i&=&0;&i&n.&i++)&{
trace(i+"&Extract:&"+n.extract[i].toString()+"\n");
trace(i+"&Remain:&"+n.remain[i].toString()+"\n");
------解决思路----------------------如果合理利用对称性,还会提高效率大约4倍。------解决思路----------------------引入牌类下标index(4).
利用对称性,对于当前局面先映射到抽象类压缩表示中。
其余雷同了。不是国家允许麻将带彩吗?多大彩头算赌博?常听朋友讲,四个人玩麻将,每人一墩子(一万元),每输光一人,牌局结束。天天玩,人员固定,今天张三赢,明天李四赢的!常年下来差别不大。
楼主正文显示宽度
跟帖显示为
本帖只代表的个人观点,不代表人民网观点。 如将本文用于其他媒体出版, 请与联系。举报
微信扫一扫分享本帖到朋友圈
微信扫一扫分享本帖到朋友圈
图文编辑模式
08:12:53&)
1008字(452/34)
( 19:45:10)
( 00:53:26)
( 23:40:18)
( 23:10:48)
( 22:58:40)
( 22:57:35)
23字(12/0)
( 20:51:42)
( 20:33:36)
( 18:55:04)
48字(96/0)
( 18:53:57)
( 18:03:02)
( 17:35:47)
( 17:19:49)
78字(11/0)
( 17:06:53)
( 16:52:14)
86字(63/0)
( 15:01:48)
( 14:12:31)
( 12:50:47)
195字(0/0)
( 10:57:23)
28字(28/0)
( 10:54:55)
( 10:47:45)
( 10:34:12)
( 10:12:54)
134字(4/0)
( 10:08:44)
( 10:03:41)
163字(3/0)
( 09:56:09)
204字(4/0)
( 09:14:02)
( 09:11:12)
( 08:54:54)
50字(10/0)
( 08:42:04)
( 08:33:51)
100字(10/0)
( 08:30:34)
174字(10/0)
( 08:23:35)
19字(15/0)
( 08:12:53)
请登录后继续操作....
强国社区-人民网宝妈们,老公喜欢打麻将,说打麻将比我和儿子还重要呢!听了这话心里凉半截,我该怎么办呢?_百度宝宝知道

我要回帖

更多关于 打麻将最怕听到什么 的文章

 

随机推荐