牌山と河のデータ構造

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

続きを読む

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

さくらVPSで kobalab.net を運用しているのですが、昨今はhttpsに対応していないと何かと不便です*1。SSL証明書の価格も安くなってきているのでSSLを有効にしました。

かつて mod_ssl の設定 - koba::blogmod_sslのインストール - koba::blog の要領で「インチキ証明書」を作ってApacheのSSLを有効にしたことはあるのですが、今回はマジメにやります。

*1:httpsなページからは非httpsなサイトの画像やCSSやJavaScriptのプログラムを利用できない。このために 牌画入力ツール の牌画像の配置にGitHubページを使わざるを得ませんでした

続きを読む

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

電脳麻将 は HTML5 + CSS3 + JavaScript で動作しています。手牌もHTML5とCSS3だけで表示しています。今回は以下の手牌を例に、どのように表示しているか説明します。

f:id:xlc:20200809182855p:plain:w600

手順は以下の流れになります。

  • 牌譜形式 → JavaScript形式 に変換
  • JavaScript形式 → HTML に反映
  • HTML を CSS で実際に表示されるイメージに調整
続きを読む

電脳麻将 ver.1.4.0 公開

f:id:xlc:20200808115114p:plain:w280:right

電脳麻将ver.1.4.0 にバージョンアップしました。

  • 牌譜集計機能を追加
  • 検討モードがスマートフォンに対応
  • 牌譜ビューアのUIを改善
  • IE11 などの古いブラウザのサポートを終了
  • 天鳳牌譜変換ツールを削除
  • src/ 配下のソース構成を整理

が主な修正です。

続きを読む

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

電脳麻将のプログラム構成(1) 〜 JavaScript編 - koba::blog に続き、今回はHTML/CSSのプログラム構成。

電脳麻将 では、ver.1.0 からCSSの生成に Stylusver.1.3 からHTMLの生成に Pug を使っています。HTML/CSS に関して現在リファクタリング中です。以下の説明は次回リリースの ver.1.4 での構成 となります。

続きを読む

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

電脳麻将のプログラム構成(0) ~ 全体編 - koba::blog に続き、今回はJavaScriptのプログラム構成。

電脳麻将プログラム は全てJavaScriptで記述しています。プログラムは以下に分類できます。

  1. 共通モジュール
  2. 画面系モジュール
  3. ページ毎モジュール
  4. 開発用モジュール
続きを読む

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

電脳麻将 のプログラム構成について。

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

次回リリースする ver.1.4.0 で構成を再度見直す予定なので、今回の説明も先駆けてそれに合わせています。

続きを読む

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

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

  1. mod_proxy によりApacheをリバースプロキシにする
  2. systemd によりサーバ起動時に自動起動するようにする

となります。

続きを読む

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

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

この機能を利用すれば、天鳳の牌譜を変換して 電脳麻将: 牌譜ビューア で再生・検討することができます。

続きを読む

中国語の音節構造

中国語、発音よければ半ばよし

これは中国語教育者の相原茂氏の言葉です。文法は比較的簡単なのに発音が難しいのが中国語の特徴と言われています。ですが中国語の発音は日本語と同様に 子音+母音 のパターンに正規化されており、音節のパターンは有限です*1。その点で音節のパターンを数え上げることができない英語などよりはよほど簡単だと私は思っています*2

ところがこの正規化のパターンをわかりやすく説明しているテキストはあまりないようです。なので私の理解で説明を試みたいと思います。

*1:とは言っても「五十音」の日本語よりは相当数が多いですが

*2:例えば英語の strike はたった1音節で、構造は 子音+子音+子音+二重母音+子音 です。1つの音節の中で子音が連続できるため、組合せが爆発して全てのパターンなどとても数え上げられません

続きを読む