最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

「MahGen」日本麻將牌畫生成工具

2023-03-06 12:36 作者:Eric從陰影中現(xiàn)身  | 我要投稿

MahGen 是一個(gè)為給定的日本麻將牌型生成對(duì)應(yīng)牌畫的工具。MahGen 是 Mahjong Generator 的縮寫。


你可以在下面這個(gè)網(wǎng)站體驗(yàn)它:

https://mahgen.ericlab.cc/

這個(gè)網(wǎng)站使用 GitHub?Pages 部署,訪問不便的話也可以使用下面這個(gè)國內(nèi)的鏡像:

https://eric200203.gitee.io/mahgen/

在網(wǎng)站中使用工具生成圖片后,即可右鍵點(diǎn)擊圖片將其復(fù)制到剪貼板或者保存到本地供日后使用。本文中的所有牌畫圖片都是使用 MahGen 生成的。


有興趣的朋友也可以訪問本項(xiàng)目的 GitHub:

https://github.com/eric200203/mahgen


功能與特性

MahGen 支持各種牌型的表示:

基本牌型
吃、碰、杠、暗杠等副露
各種復(fù)雜牌型的組合

網(wǎng)站支持純文本和交互式界面兩種輸入方式:

純文本模式,輸入記牌序列生成牌畫
交互式界面,點(diǎn)擊選擇牌面和形態(tài)加入牌畫

語法說明

MahGen 的純文本模式支持通過輸入序列生成牌畫,序列的語法基本遵循天鳳描述牌型的慣例,并在其基礎(chǔ)上進(jìn)行擴(kuò)展以支持更多的功能。(以下內(nèi)容也可以在網(wǎng)站中的“語法說明”部分查看)

數(shù)牌(餅、索、萬)

天鳳中使用數(shù)字 1-9 描述牌的點(diǎn)數(shù),使用字母 p、s、m 描述牌的類型 餅 Pin、索 So、萬 Man。因此,序列 1m2m3m 表示牌型 一萬二萬三萬,5p6p7p 則表示 五餅六餅七餅。特別地,數(shù)字 0 表示紅寶牌,因此 0p、0s、0m 分別表示 紅五餅、紅五索、紅五萬:

1m2m3m:一萬二萬三萬
5p6p7p:五餅六餅七餅
0p 0s 0m:紅五餅 紅五索 紅五萬

為了簡(jiǎn)化書寫,你可以將同一類型的牌的類型描述全部省略,只保留最后一個(gè)。例如,你可以將上文中的 1m2m3m 簡(jiǎn)寫為 123m,5p6p7p 簡(jiǎn)寫為 567p。當(dāng)然,你也可以寫作 1m23m 或 12m3m,它們都表示 一萬二萬三萬 這個(gè)牌型。

字牌(風(fēng)牌、三元牌)

天鳳使用字母 z 表示字牌,且字牌的順序?yàn)椤皷|南西北白發(fā)中”,因此 1z 2z 3z 4z 5z 6z 7z 分別表示 東 南 西 北 白 發(fā) 中。

1z2z3z4z5z6z7z:東 南 西 北 白 發(fā) 中

在此基礎(chǔ)上,我們使用 0z 表示 牌背。例如,我們可以使用 0z11p0z 表示 暗杠一餅:

0z11p0z:暗杠一餅

最后,為了讓所有的數(shù)字對(duì)字牌都有意義,我們使用 8z 和 9z 表示兩張并不在日本麻將中出現(xiàn)、但可能有用處的牌: ? 和 *。

8z9z:?jiǎn)柼?hào) 星號(hào)

和數(shù)牌一樣,字牌也可以簡(jiǎn)寫,例如 3z3z3z 可以簡(jiǎn)寫為 333z。

空格

我們使用 | 在兩張牌之間插入 空格,每個(gè)空格是 1/7 張牌的寬度。例如:

123p|456s|789m

你可以連續(xù)使用多個(gè) | 插入多個(gè)連續(xù)的空格來控制兩張牌之間空格的寬度:

123p||||456s

副露

副露時(shí),麻將牌可能會(huì)發(fā)生以下三種變化:橫置、加杠以及涉及紅寶牌的加杠。

橫置

我們使用前綴 _ 表示將緊接著的下一張牌橫置。例如,我們可以使用 _123m 表示 使用二萬和三萬吃上家打出的一萬:

_123m:吃上家打出的一萬

這里有更多的示例:

1_11s:碰對(duì)家打出的一索
777_7p:杠下家打出的七餅

加杠

我們使用前綴 ^ 表示緊接著的下一張牌是加杠形成的重疊。例如:

77^7z:加杠紅中

涉及紅寶牌的加杠

我們使用前綴 v 表示緊接著的下一張牌是加杠形成的重疊,且其中有一張牌是紅寶牌。我們定義:v0 表示重疊中靠下的牌是紅寶牌,靠上的牌是普通數(shù)牌;v5 表示重疊中靠下的牌是普通數(shù)牌,靠上的牌是紅寶牌。例如:

55v5p、5v05s、v555m

總結(jié)

MahGen 的語法總結(jié)如下:

  • 使用 1-9 描述牌的點(diǎn)數(shù);

  • 使用后綴 p、s、m、z 表示牌的類型:餅、索、萬和字牌;

  • 使用 0 表示紅寶牌,0z 表示牌背;

  • 使用 | 插入空格;

  • 使用前綴 _ 表示將牌橫置,^ 表示加杠,v 表示涉及紅寶牌的加杠。

將這些符號(hào)組合起來,我們就能夠構(gòu)造出各種各樣的牌型,例如:


1m|_123p|5v05m|0z11s0z|66^6z

最后,MahGen 只為給定的序列生成圖片,不會(huì)對(duì)序列是否符合牌理進(jìn)行檢查,因此諸如 _5^50v0m 的序列對(duì) MahGen 而言同樣是合法的。


_5^50v0m:很奇怪但是符合語法
前段JS

前端JS庫 和 Hexo插件

(對(duì)前端開發(fā)沒有興趣盆友可以跳過這一節(jié))

MahGen 還提供了一個(gè) JavaScript 前端庫,上述網(wǎng)站實(shí)際上就是在這個(gè)庫的基礎(chǔ)上進(jìn)行的二次開發(fā)。關(guān)于前端庫的詳細(xì)說明和使用指南,可參見?GitHub?項(xiàng)目 mahgen 的 README:

https://github.com/eric200203/mahgen/blob/master/README.md

此外,對(duì)于使用 Hexo 寫博客的讀者,MahGen 還提供了一個(gè)插件,用于在書寫博客時(shí)使用標(biāo)簽語法直接插入牌畫,參見 GitHub 項(xiàng)目 hexo-mahgen:

https://github.com/eric200203/hexo-mahgen

致謝

感謝 black-desk,他的項(xiàng)目 Mahjim 麻將輸入法?為本項(xiàng)目提供了靈感。

感謝 最完整的日本麻將中文維基百科(http://wiki.lingshangkaihua.com/),本項(xiàng)目的圖片素材來源于這個(gè)網(wǎng)站。


歡迎大家訪問并使用這個(gè)工具,也歡迎大家在評(píng)論區(qū)提出意見和建議。


「MahGen」日本麻將牌畫生成工具的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
阿坝| 麻城市| 河西区| 南宁市| 梅州市| 衡东县| 鱼台县| 修水县| 建阳市| 宿迁市| 平泉县| 宾川县| 繁昌县| 航空| 巴中市| 通许县| 永泰县| 文山县| 老河口市| 舒兰市| 阿克陶县| 珠海市| 衢州市| 西青区| 彭山县| 宁化县| 宁强县| 赣州市| 榆林市| 彭水| 宣恩县| 专栏| 原阳县| 洛扎县| 襄汾县| 兰考县| 大田县| 阜宁县| 荆门市| 修文县| 青河县|