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

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

nginx のインストールと設定

kobalab.net ではWebサーバに Apache を使用していましたが、今後WebSocketを使用したアプリを配置する可能性があることを考慮して、nginx に乗り換えました。Apacheで配信していたコンテンツは 静的コンテンツ (電脳麻将) CGIやSSIを使用したコンテンツ (ト…

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

電脳麻将 は HTML5 + CSS3 + JavaScript で動作する SPA です。こういったアプリを実装する場合、現在は React や Vue を使って宣言的に書くのがあたりまえで、jQueryはオワコン といわれています。ですが電脳麻将はあえて jQuery を使って MVC に基づいて実…

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

GitHubに脆弱性警告が通知されていた。pug-code-gen を 2.0.2 → 2.0.3、pug を 2.0.2 → 3.0.1 にアップデートせよとのお達しである。pug を 2.0.2 → 3.0.1 にアップデートすれば pug-code-gen も 3.0.x にアップデートされるようなので、pug だけアップデー…

牌の危険度計算アルゴリズム(1)

天鳳鳳凰卓の牌の危険度表 - koba::blog で天鳳鳳凰卓での牌の危険度と待ちの形の出現度を集計したが、その結果を 電脳麻将 の押し引きに反映する。まず前回の2つの表の条件を掛け合わせて集計し直した。

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

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

電脳麻将 ver.1.5.0 公開

電脳麻将 を ver.1.5.0 にバージョンアップしました。 押し引きアルゴリズムの改善 牌譜ビューアのUIを改善 デバッグ機能の改善 が主な修正です。

押し引きアルゴリズムの改善(3)

押し引きアルゴリズムの改善(2) - koba::blog で1シャンテンまでの押し引きを改善したので、今回はテンパイ時の押し引きを改善する。 ポンテン・チーテンをとる条件を変更 超愚形ならオリるよう修正 好形でないならリーチせず無スジは切らないよう修正 の3つ…

押し引きアルゴリズムの改善(2)

押し引きアルゴリズムの改善(1) - koba::blog で全ての打牌について1つ1つ押し引きを判断できるようになったので、押し引き表の牌姿は評価値何点? - koba::blog で言及した「評価値を基準とした押し引き判断」を実装する。

押し引きアルゴリズムの改善(1)

先制リーチを受けた場合、電脳麻将 は ベタオリのアルゴリズム - koba::blog で「仮実装」したアルゴリズムにしたがい打牌を選択しているが、今回これを改善したい。まず最初に改善目標を明確にするために、2019年の天鳳鳳凰卓の牌譜から先制リーチを受けた…

デュプリケート麻雀の実装

電脳麻将 の思考アルゴリズムを改善したときはプログラム同士を自動対戦させて効果を検証している。現在のアルゴリズムの場合、1000戦の試行に5時間くらいかかる*1のだが、麻雀には運の要素があるため同一のプログラム同士を対戦させても1000戦では平均順位…

押し引き表の牌姿は評価値何点?

電脳麻将 の押し引きの検討を開始した。押し引きの基準としてはいろいろな麻雀戦術書で引用されている「押し引き表」が有名である。 とりあえず麻雀研究始めてみました より広いケースの押し引き表(面前限定) これをそのまま実装してもよいのだが、現在の…

牌山と河のデータ構造

麻雀の手牌を表示するプログラム - koba::blog に続いて牌山と河を表示するプログラムを説明しようかと思いましたが、そのためにはまず牌山と河がJavaScriptでどのように表現されているかを知る必要があります。ということで今回は牌山と河のデータ構造につ…

さくらVPSでApacheのSSLを有効にする

さくらVPSで kobalab.net を運用しているのですが、昨今はhttpsに対応していないと何かと不便です*1。SSL証明書の価格も安くなってきているのでSSLを有効にしました。かつて mod_ssl の設定 - koba::blog、mod_sslのインストール - koba::blog の要領で「イ…

麻雀の手牌を表示するプログラム

電脳麻将 は HTML5 + CSS3 + JavaScript で動作しています。手牌もHTML5とCSS3だけで表示しています。今回は以下の手牌を例に、どのように表示しているか説明します。手順は以下の流れになります。 牌譜形式 → JavaScript形式 に変換 JavaScript形式 → HTML …

電脳麻将 ver.1.4.0 公開

電脳麻将 を ver.1.4.0 にバージョンアップしました。 牌譜集計機能を追加 検討モードがスマートフォンに対応 牌譜ビューアのUIを改善 IE11 などの古いブラウザのサポートを終了 天鳳牌譜変換ツールを削除 src/ 配下のソース構成を整理 が主な修正です。

電脳麻将のプログラム構成(2) 〜 HTML/CSS編

電脳麻将のプログラム構成(1) 〜 JavaScript編 - koba::blog に続き、今回はHTML/CSSのプログラム構成。電脳麻将 では、ver.1.0 からCSSの生成に Stylus、ver.1.3 からHTMLの生成に Pug を使っています。HTML/CSS に関して現在リファクタリング中です。以下…

電脳麻将のプログラム構成(1) 〜 JavaScript編

電脳麻将のプログラム構成(0) ~ 全体編 - koba::blog に続き、今回はJavaScriptのプログラム構成。電脳麻将 の プログラム は全てJavaScriptで記述しています。プログラムは以下に分類できます。 共通モジュール 画面系モジュール ページ毎モジュール 開発…

電脳麻将のプログラム構成(0) ~ 全体編

電脳麻将 のプログラム構成について。ver.1.0.0 より電脳麻将は、npm対応のパッケージ になっています。ソースからビルドするには Node.js と npm が必要になりました。今回はこの新しいプログラム構成について説明します。次回リリースする ver.1.4.0 で構…

Node製のサービスを常駐化させる

電脳麻将で天鳳の牌譜を検討する - koba::blog で作成した天鳳牌譜変換サーバを外部からアクセス可能な常駐サービスとして起動するよう設定します。手順は、 mod_proxy によりApacheをリバースプロキシにする systemd によりサーバ起動時に自動起動するよう…

電脳麻将で天鳳の牌譜を検討する

天鳳の牌譜形式を解析する(1) - koba::blog 〜 天鳳の牌譜形式を解析する(4) - koba::blog で作成した 天鳳 の牌譜を 電脳麻将 形式に変換するツールをJavaScriptに移植し、npmパッケージ化しました。この機能を利用すれば、天鳳の牌譜を変換して 電脳麻将: …

中国語の音節構造

中国語、発音よければ半ばよし これは中国語教育者の相原茂氏の言葉です。文法は比較的簡単なのに発音が難しいのが中国語の特徴と言われています。ですが中国語の発音は日本語と同様に 子音+母音 のパターンに正規化されており、音節のパターンは有限です*1…

麻雀アプリに「牌操作」はあるのか?

麻雀アプリのストアでの評価を見ると「牌操作がひどい」というように牌操作という言葉を聞くことがあります。ここでいう牌操作とは、 配牌が何らかの意図で偏らされている*1 局開始後にツモが意図的に変更される*2 という意味で使われているようです。では、…

何切る検討(7) ~ 片アガリはダメ?

麻雀 定石「何切る」301選 の Q037。[ 東場 東家 ] 電脳麻将: 何切る解答機 の選択は打 、ウザク本の回答は打 。

何切る検討(6) ~ 良形聴牌?

麻雀 定石「何切る」301選 の Q022。[ 東場 東家 ] は確定メンツなので、亜リャンメン 、リャンメントイツ 、4連形 のどれを切るかの問題。電脳麻将: 何切る解答機 の選択はリャンメントイツから打 、ウザク本の回答は亜リャンメンから打 。

何切る検討(5) ~ 鳴きの評価

麻雀 定石「何切る」301選 の Q012。[ 東場 東家 ] 電脳麻将: 何切る解答機 の選択は打 、ウザク本の回答は打 。

何切る検討(4) ~ 嵌八で待て!

麻雀 定石「何切る」301選 の Q134。[ 東場 東家 ] 電脳麻将: 何切る解答機 の選択は打 、ウザク本の回答は打 。

何切る検討(3) ~ 手変わりの考慮

麻雀 定石「何切る」301選 の Q068。[ 東場 東家 ] 電脳麻将: 何切る解答機 の選択は打 、ウザク本の回答は打 。

何切る検討(2) ~ チートイとの天秤

麻雀 定石「何切る」301選 の Q038。[ 東場 東家 ] 電脳麻将: 何切る解答機 の選択は打 、ウザク本の回答は打 。

何切る検討(1) ~ 好牌先打?

麻雀 定石「何切る」301選 の Q003。[ 東場 西家 ] 電脳麻将: 何切る解答機 の選択は打 *1、ウザク本の回答は打 。 *1:ver.1.3.2での選択