首页 > 日麻 > 日麻算分器

日麻算分器

2015年12月28日 发表评论 阅读评论

额,其实。。我是来水博客的,感觉好久没写了是吧。。

写完回过头来补充一句。。。这篇文章真的被我写成水文了。。

大概是背景吧

先扯淡,说起来这个博客的header。。那幅很中二很傻很挫的图,是几年前刚开始弄博客的时候随手瞎搞的,但是由于一直很懒,就一直没去换/改,至少今天为止还是。。(唯一干的一件事就是觉得这个图太大了加载很慢所以就把它转移到七牛去了),图中的几个图案,娘果33,三只YUI,和博士+坂本,这几个是我当时电脑里找到的几个容易用PS分割出来的图,嗯。。这就是为什么header和footer那么多平泽唯而我并不是很喜欢这个角色,嘛~娘果33我倒是特别特别喜欢,还曾一度将这只肥猫的生活方式当成人生目标。。。

1

不过header下面的麻将倒是我故意去(贴吧)找的,是大魔王『注:《SAKI》(nan)主』一开始那个领上四暗刻最后的牌谱,因为当时一度沉迷于日本麻将中不可自拔,研一更是整整打了一年。。觉得博客中不放张图无法表现我的爱好,所以才有了这么一幅图。。我是基本不打网游的,DOTA/LOL这些目前为止都还没碰过,除了日麻,即天凤和鸟笼(雀龙门)两个(还有天极牌打过一阵子),天凤更是我唯一一个花钱充过值的游戏。。(不是我不想充鸟笼,只是打一局七块多的成本真的氪不起啊,大家可以去淘宝搜"雀龙门 场代",1000场代56软妹币,一局要花150场代。。)

游戏中的日麻(网麻)跟和朋友出去面对面打的麻将(虽然叫手麻,但是我们管它为。。面麻。。)区别是很大的,先不说游戏中的宝牌会闪,面麻时不会,游戏中有红宝牌,面麻中我们都是拿贴纸贴红宝牌的。。

日麻是一种防守为主的竞技型麻将(背完番型,了解规则不算日麻入门,会主动选择弃胡开始才算入门),网麻中得失点数,立直/本场改变程序都会帮你算好,而面麻的时候就蛋疼了,我们以前都是拿张草稿纸来记录各家分数,经常打的几个朋友里面只有我算番/符/分数算得比较熟,熟悉日麻的同学应该都了解,刚开始学的时候算分基本离不开算分表我倒不是背下来了,而是打多了。。。。而且每一局还要记得立直棒和本场数的分数处理,是面麻时极度麻烦的一件事,对,因为数死早的缘故,我们以前打着打着就发现四个人总分加起来不是10万了(啊,说起来好像我们这一波人都是一个数学老师教的)。。

于是乎,当时就和某个小伙伴开了这个,一个辅助面麻时繁琐计算的小工具,什么时候开的坑呢,根据github记录。。2014年4月底。。
2

然后我们脑洞了一下需要的功能,就真的变成坑了,一年多没人碰它(大家都要准备硕士毕业论文也是一个原因)。。15年工作后基本就没怎么碰日麻了,一两个月打一局的节奏,然后国庆几个朋友说要打麻将,我就9月抽点时间断断续续把这个开发了。。

(呀,完了,又被我写成水文了,算了,破罐子破摔了,因为我写这一篇东西就是想嘲弄一个坑货)

介绍个坑货,跑跑题

小众向的工具博文没什么人看,给大家介绍个坑货娱乐娱乐。。一开始和我一起脑洞的某人,下文简称坑货,他会一点点安卓,我就决定我俩独立写两个,我写个JS的,他开发个安卓的,后来坑了的故事上面已经讲了。。

但是这个坑货呢,校招时凭借着跟安卓完全不相关的知识去面安卓开发,被鹅厂收了,坑货开开心心来报道入职后,封闭培训后才知道,原来他被调到了iOS开发。。。

34
对!!一个换了n个安卓手机,OSX全没碰过,OC完全不懂的人,被调到了iOS开发去了。。发机子第一天问我。。iMac怎么开机。。
56

这个坑货的人生就是一个不断立flag的过程,入职不久他曾经立过一个巨大的大写的FLAG:我们这个部门虽然平时很忙,但是发版本后还是很轻松的。。。于是开始了晚上11点下班算早,周末不加班算运气好,基本都在开发下下个版本的充实生活。。(我为什么上面那个微信聊天要打码,就是怕他们组招不到人了。。)

说回这个日麻坑,他入职几个月后我跟他说是不是要把这个坑填了,他想了想,立了个flag说:我国庆前会用iOS写一个新的!!

于是国庆前他几乎处于完全没空写这种东西,最后他用公司楼下的麦当劳的鸡盒为代价,要了我JS的代码,强行植入到他的iOS中自欺欺人地完工了。

国庆打麻将他发现兼容效果不好,又立下一个flag:我元旦前一定会完成一个原生的iOS版本,于是元旦结束时他因为完全没开工又请我吃饭了。。

然后刚刚写这博文之前我github提交了一个新的commit,看到commit历史我直接懵逼了。。。
7

讲回这个工具吧

想黑的人我已经黑完了,剩下随便写写点个题吧。。

我写的JS版本放在了这里,不要吐槽界面,我的前端知识完全就是google来的。。
8

左上角面板有以下几个功能:
1. 玩家姓名随时随地修改,无需确认全局各个相应的地方都会改过来。
2. 程序自动随机抽风(牌)换座位,不然面麻时每次都要找东南西北风好麻烦。。
3. 模拟色子。。(我知道做得太挫了点)
4. 切换右边分数走势用曲线是直线(下图为上图的直线模式)。
9
5. 现在支持半庄和速东两种模式(区别主要就是起始分),三麻因为我们本来就很少打所以留了个坑没开发(因为面麻主要是麻将机洗牌,不支持把2~8万这些牌拿掉,所以用起来很麻烦)。
6. 手机或者iPad下使用为了给走势图更多显示空间,所以面板可以收起来。
10
7. 帮助页面有常见番型(红字番型有高低目之分)和wiki的规则链接,因为有时拉新人入坑他们总是要查看这个。
11

右边的走势曲线是我特别喜欢的一部分,改自一个图形库,鼠标放上去或触摸会有小panel显示那一局的分数,另外每一局的marker,X表示丢分,表示分数没变,表示得分。
12

然后就是左下的操作面板了:
1. 立直棒只可以点击立直的,点完右上角会自动增加(再次点击可以撤销)。
2. 左上角可以切换看绝对点数和点差模式(参考自鸟笼的游戏),该模式下主视角会显示当前分数,但是其他玩家的分数会显示成和主视角的分差。切换主视角方式点击风位变成蓝色即可。
13
3. 中间的扇形是四家分数占比,画图逻辑让最大的扇形的那一家的中心线总是对着自己(我好无聊)。
14
4. 本场数程序会自动根据流局,听牌,庄家是否胡牌等各种状况自动计算。
5. 右下角四风连打(本场数+1且流庄)和九种九牌(本场数+1)两个按钮可以使用。
6. 流局处理形听时,点击左下角的就会变成,画面会变成这个样子:
15
点击相应的『听』字变『听』成即可表示该玩家听牌(立直方默认帮你点上的):
16
选择完毕点击就完成形听的计算了。
7. 点击可以撤销上一局的操作,毕竟人都会手滑。。


接下来就是最复杂的点炮&自摸操作了,这个交互我想了很久很久,已经是我能想到的即完整,有相对简化的了。。介绍起来还需要结合右下的计算工具来使用:

分数转移除了流局等,无非以下几种:
1. 自摸(分亲家和亲家)
2. 一家点炮另一家(分点闲家还是亲家)
3. 一炮双响(分点闲家还是亲家)
4. 一炮三响,嘛,根据天凤规矩,这个算流局。(毕竟一炮三响可是凤凰级别的避铳啊。。)

补个真实段子,日文里面庄家写作『亲』,读作おや,而日语里亲(おや)也有双亲的意思在里面,然后天麻里面忘了是动画还是漫画,某角色本来想说:轮到我坐庄了。日语直接写过来你可以理解成『轮到我的亲了』,结果某字幕组还是汉化组写:轮到我的爸爸妈妈了。。。于是我们面麻的时候庄家都会说一句『轮到我的爸爸妈妈了。。』

对于自摸,自摸家点击自己面板上的自摸,然后在右边选择好胡牌的番数和符数,然后点击确定即可,亲闲系统会分别对待。
17

点炮的话,点炮者点击点炮后,自摸按钮会变成胡牌,然后荣和的人(一个或两个)点击胡牌,比如下图B点了C,D两人,右下角显示先确定C胡的番数和符数:
18
确定后再确定D的即可。
19

关于右下的辅助面板再说两句,符数计算工具是给新手用的,使用中可以不用,使用的话也很简单,把状况点击上旁边的符数会自动帮你勾选的。
20

最后

唉,其实写这个东西虽然是为了玩得开心不务正业,可是写起来还是很开心的,至少好好地有研究了一把JS,canvas,还有CSS的那些布局(妈蛋这个最恶心)。不过让我震惊的是,原来我的强迫症除了审美,基本都到晚期了,比如代码里为了杜绝各种不可能的现象,交互那部分的代码几乎是竭尽我所能把各种误操作给堵上了,比如四人点炮,多人自摸,一番25符,面子计算工具中值加起来超过4,还有好多好多,我现在都已经想不全了。。

嘛,总之这是一个小众工具。。写博文主要是黑人。。(逃,附一个github地址


【完】

本文内容遵从CC版权协议,转载请注明出自http://www.kylen314.com

分类: 日麻 标签: ,
  • 毛主之地

    這陣子跟朋友在談打日麻,首先得解決的就是計算符數問題,想不到居然有菊苣寫了啊...

    • 因为大家都会遇到这个问题。。

  • yuki

    膜菊苣,不知符的计算器bug修复没

  • Thiece

    后半段完全不知道在讲什么_(:з」∠)_