またまた早朝3時にヒラメキが降りてきました。

 

「ウィンドウ毎に固有の値があるなら、ウィンドウにそれを持たせりゃいーだけじゃん?」

 

ということで、(既にBCCSkeltonのCPICBOXユーザーコントロールでは使っていたのですが...汗;)SetProp、GetProp、RemoveProp関数を使って"DICE"コントロールが共用するコールバック関数でウィンドウ毎の値を処理することができるようになりました。(但し、それでも描画は最後に纏めて3つの賽が描かれますが、これはいかんともしようがなさそうです。)

 

では「纏めていこう」と思ったのですが、今まで英語で書いてきてチンチロリンの概要とルールを英語で書いていたら「結構、得意でない人にはきついかも?」と感じ始め、「では、日英両語で行こう!」と方針転換。

 

バイリンガル新方針に沿ってどうするかを検討しましたが、

(1)BCCFormがあるので、「この日の為のSTRINGTABLEじゃないの?」と思いましたが、こいつはLoadString関数などを使うので結構めんどくて、「やっぱやめっ!」ということにしました。

(2)日英両語というと、矢張り#ifdef~#else~#endifのコンパイラースイッチを想定しちゃいますが、これだと日英切替の度にコンパイルが必要ですし、そうなれば「日本語オンリーさん」「英語オンリーさん」が出てきちゃうじゃないですか?なので、「日英両語動的選択」にしようと考えました。

(3)そうなると、日英両語切替は (i) 文字列の他、(ii) ウィンドウやダイアログコントロールのフォント、(iii) 言語選択の方法とすべての文字表示の設定を行うことが必要です。それぞれ(i) 日英両文字列のポインターを用意、(ii) BCCSkeltonのCFONTクラスを使うと便利なのでそれを使い、影響のあるコントロールにはWM_SETFONTを送り、(iii) WM_INITDIALOGで選択ダイアログを出すようにしました。

 

結果、こうなりました。

 

 

いよいよ後は「ルールに基づく賽の目評価」と戦績ログをどうするか、ですね。

 

【無駄話の昔話です。昭和レトロが好きな方はお読みください。】

ps. さてサイコロのコントロールは前から興味がありましたので、今回一応それらしいものができたので「まぁ、良し」としましょう。また、そのアプリとして「チンチロリン」を選んだのには、実は訳があります。

 

私が高校3年生の夏休み、止せば良いのに麻雀を覚えてしまいました。それからは寝ても覚めてお麻雀、麻雀で、一応何とか現役合格はしましたが、大学へも行かず、雀荘(今の人は分からないよね。麻雀をさせる店舗です)に入りびたりの毎日でした。

 

そんな時に貪るように読み耽っていたのが「阿佐田哲也-「朝だ、徹夜」のごろ合わせだそうです-著『麻雀放浪記』」でした。この四部作は麻雀の闘牌の絶妙さや戦後の日本の情景を見事に表しているのみならず、登場人物のキャラ設定や人間関係、行動傾向等実に「心理学、精神分析学専攻の社会学部の学生」として興味を持ったところとなり、挙句1年留年してしまいました。まぁ、そんなことはどうでもよいのですが。

 

この麻雀放浪記(一)青春篇の冒頭エピソードが「チンチロ部落」でして、この時初めて「チンチロリン」なるサイコロ博打があることを知ったわけです。作中のルールはほぼWikiの説明と符合しますが、5が三つ並ぶ「五ゾロ」(倍付)はWikiには出ていませんね。また、シゴロ(456)は「シンゴロウ」などという渾名も付いていたことが分かりますね。

 

何れにしても、この小説のインパクトから自分でも仲間内で遊んだことがありますし、「民主主義時代のサイコロ博打」として面白いと思います。お粗末様でした。