天鳳の牌譜形式を解析する(4) - koba::blog で作成した天鳳牌譜変換ツールを使って天鳳の牌譜を電脳麻将の牌譜形式に変換し、統計を取ってみた。
対象としたのは 2016年の「鳳凰卓 東南戦 赤あり」の 159,798半荘。
続きを読むL2TP/IPsec VPNサーバの構築 - koba::blog で構築したVPNサーバは問題なく動作しているのですが、来年2月までに中国ではVPNが規制されるという情報もあり、対策をとっておきたいところです。VPNの規制には特定のポートを遮断するという方法がとられるのではないかと思っています。実際、半日〜1日程度の期間でsshやWebアクセスはできるのにVPNのみが使用できないということはありました。
OpenVPNであれば使用するポートを変更できるので、規制されにくいのではと思います*1が、L2TPなどと異なりクライアント側にもソフトウェアをインストールする必要があります。中国政府もそれは承知していて、中国からはOpenVPNのクライアントは手に入りにくくなっています*2。
今回はTunnelblickを使用してMac(OS X 10.9.5)からOpenVPNサーバに接続してみます。
*1:ただしIPレベルで規制されたらアウトです。これをやられたこともあります
*2:中国のiTunes Storeからは中国政府の要請により排除された模様です。Androidに関しては、そもそも中国のスマホにはGoogleアカウントがなく、ソフトウェアはすべて政府の監視下で流通しています
麻雀の副露判断アルゴリズム(2) - koba::blog で「特定の役への向聴数」を計算する方法を導入したが、バグがあるようである。例えば下記の2つの牌姿の(索子の)混一色への向聴数は
であるが、ともに2面子2搭子のため、同一の向聴数と判定してしまう。
続きを読む電脳麻将 は HTML5 + CSS3 + JavaScript で動作するフロントエンドのWebアプリです。サーバ側にコードはありません。ですので今までは Node.js を使わずに開発していました。思考アルゴリズムの検証でAI同士に自動対戦をさせる場合もブラウザ上で実行していたのですが、1000半荘の対戦に8時間以上かかるようになり、さすがにブラウザ上での実行は厳しくなってきました*1。
そこで Node.js を導入することにします。せっかく導入するのですから以下の方針とします。
*1:ブラウザ上で実行する場合、ブラウザが画面の前面に出ていないと実行がスリープしてしまうので長時間の試験がやりにくい。と思っていたのですが、実はヘッドレスChromeで解決できそうです。ですが今後のことを考え、この機会にNode.js化します
麻雀の打牌選択アルゴリズム(4) - koba::blog から 麻雀の副露判断アルゴリズム(5) - koba::blog まで打牌選択と副露判断に打点を考慮するよう改良してきたが、今回で最終回。一色手を狙わせてみる。
前回のアルゴリズムで1000半荘対局させると一色手(混一色、清一色)の出現率が 1.5% なのであるが、天鳳鳳凰卓の一色手出現率は 4.8% であり、かなり差がある。一色手を狙う場合は序盤に孤立字牌を残す打ち方をするべきなので、麻雀の打牌選択アルゴリズム(3) - koba::blog で導入した孤立牌の評価値に手を加えてみる。
続きを読む麻雀の打牌選択アルゴリズム(8) - koba::blog までのアルゴリズムで打牌の選択に打点を考慮した評価値*1を使用するよう修正したが、今回はその評価値を副露判断にも使用するよう改良する。
副露判断に評価値を使用することで以下の効果が期待できる。
*1:期待値のような物であるが確率を使用していないので「評価値」としている
ドラ
から何を切るか?*1
候補となるのは、打 (待ち 16枚)、打 (待ち 16枚)。麻雀の副露判断アルゴリズム(4) - koba::blog までのアルゴリズムでは がポンできることを重視し だが、麻雀の打牌選択アルゴリズム(7) - koba::blog のアルゴリズムは2向聴以降は鳴きを考慮しないため を選択してしまう。
今回は2向聴以降も鳴きを考慮できるよう改良する。
*1:麻雀 傑作「何切る」300選 での正解は
麻雀の打牌選択アルゴリズム(6) - koba::blog でシャンテン戻しを仮実装したが、問題が残っている。
のテンパイから を切って1向聴に戻してしまう。また
の国士無双テンパイからも をツモ切りしてしまう。今回はこの問題を修正する。