麻雀ルールのカスタマイズ(2) ~ 流局処理と連荘判断

電脳麻将 ver.2.0 で開発中の新機能「パラメータによるルールのカスタマイズ」。麻雀ルールのカスタマイズ(1) ~ 終局判断とポイント計算 - koba::blog に続き今回の話題は 流局処理連荘判断。これらに関わるパラメータは以下の通り。

  • 途中流局あり
  • 流し満貫あり
  • ノーテン宣言あり
  • ノーテン罰あり
  • 最大同時和了数
  • 連荘方式
続きを読む

麻雀ルールのカスタマイズ(1) ~ 終局判断とポイント計算

電脳麻将 ver.2.0 で開発中の新機能「パラメータによるルールのカスタマイズ」で終局判断ポイント計算に関わるパラメータは以下の通り。

  • 配給原点
  • 順位点
  • 場数
  • トビ終了あり
  • オーラス止めあり
  • 延長戦方式
続きを読む

麻雀ルールのカスタマイズ(0) ~ ルール一覧

電脳麻将 ver.2.0 開発 における目玉の一つが パラメータによるルールのカスタマイズ である。具体的なパラメータ一覧は ルール · kobalab/majiang-core Wiki · GitHub に記した通り。これらを組み合わせてカスタマイズ可能とする。

実装予定のパラメータでどこまで各種ルールに対応可能か調べてみた。ネット麻雀代表として 天鳳、競技麻雀代表として Mリーグ、古典的ルール代表として 最高位戦Classic を例にパラメータを適用した*1

*1:ただし天鳳は「ナシナシ東風戦」とした

続きを読む

nginxによるsocket.ioプロキシの設定

socket.ionginx のインストールと設定 - koba::blognginx を導入した目的は、WebSocketを使用したWebアプリを提供することであった。なので今回は実際に socket.io を使用した 簡単なWebアプリ にリバースプロキシからアクセスしてみた。

続きを読む

nginx のインストールと設定

nginx

kobalab.net ではWebサーバに Apache を使用していましたが、今後WebSocketを使用したアプリを配置する可能性があることを考慮して、nginx に乗り換えました。Apacheで配信していたコンテンツは

  1. 静的コンテンツ (電脳麻将)
  2. CGIやSSIを使用したコンテンツ (トップページ*1XiuMai*2
  3. Node.js のサービスに連携するリバースプロキシ (LiuLian天鳳牌譜変換サーバ)

に分類できます。1 はnginxで直接配信、2 はnginxをリバースプロキシにしてApacheに連携*3、3 はnginxをリバースプロキシにして直接連携 としました。

*1:アクセスカウンタや新着情報はCGIの出力をSSIで取り込んでいる

*2:mod_perl で動作

*3:可能であればnginxで直接動作させたいが、気軽に雑なCGIが動かせる環境は残しておきたい

続きを読む

電脳麻将におけるMVCの実装

電脳麻将 は HTML5 + CSS3 + JavaScript で動作する SPA です。こういったアプリを実装する場合、現在は ReactVue を使って宣言的に書くのがあたりまえで、jQueryはオワコン といわれています。ですが電脳麻将はあえて jQuery を使って MVC に基づいて実装しています。その理由は jQueryでないと美しく実装できない と考えるからです。

続きを読む

npm モジュールのセキュリティアップデート(2)

GitHubに脆弱性警告が通知されていた。pug-code-gen を 2.0.2 → 2.0.3、pug を 2.0.2 → 3.0.1 にアップデートせよとのお達しである。

f:id:xlc:20210305011307p:plain:w360:right

pug を 2.0.2 → 3.0.1 にアップデートすれば pug-code-gen も 3.0.x にアップデートされるようなので、pug だけアップデートすればよさそうなのだが、この2つのモジュールを使っている pug-cli がアップデートされていない*1。こういうときは npm audit fix を使って package-lock.json を直すが定番だが、さすがにメジャーバージョンのアップデートは対応できない。

以前、npm モジュールのセキュリティアップデート - koba::blog のやり方で修復したことがあるのだが、これはどうやらたまたまうまくいっただけのようである。そこでネットを調べると package.json の resolutions を使って依存パッケージのバージョンを指定する - 30歳からのプログラミング というページを発見したので、これを参考にバージョンアップを試みた。

*1:1.0.0-alpha6 というなんともやる気のないバージョンのまま

続きを読む

天鳳鳳凰卓の牌の危険度表

現代麻雀技術論 - 押し引き論13.ベタオリ でも紹介されている有名な「牌の危険度表」の出典は『科学する麻雀』の東風荘のデータと思われるので、赤なし・クイタンなしの東風戦のケースであろう。では天鳳鳳凰卓の東南戦では?ということで実際に統計をとってみた。*1

集計対象は2019年の天鳳鳳凰卓東南戦 171,650半荘の全リーチ 1,300,316件*2。スジや見えている枚数の条件はリーチ宣言牌打牌直後。

*1:実際のところ、この危険度表は計算の元となる数値も計算方法も明らかでないので鵜呑みにできないと思っていた

*2:フリテンリーチと国士無双のリーチは除外

続きを読む