*All archives* |  *Admin*

<<01  2017/02  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  03>>
麻雀ゲーム・麻雀AI製作その8・初回リリース
マニュアルとかが書けたので、作った麻雀ゲームをアップロードしてみます。

2月4日 追記・アップロードファイル変更
難読化ソフト「Eazfuscator.NET」がないとプログラムが動かないバグを修正。

http://fast-uploader.com/file/7041743521137/

170203-01.png

ゲームに関係ない要素は全部非表示で隠しています。
まっさらーな感じで画面バランスが悪いですが。


使用した感じはこの1週間くらいの記事で画像として上げた通りなので、ここでは詳しく説明しません。
詳しいことはだいたい同梱の操作説明に書いてあります。

機能はゲーム部分のみに絞っています。
牌姿検討モードは悪用の懸念とか研究が安く見られたくないとかそんな感じのことで意図的に外してあります。
また、計算に使うパラメータの表も暗号化してわからないようにしています。

ただ非表示にしてるだけなので、逆コンパイルとかでどんなアルゴリズムかのぞき込まれるみたいな心配もちょっとあったので、
難読化ソフトを使ってコードがわかりにくいようになってる(と思います。ソフトを使っただけなので逆コンパイルとかの確認まではしてない。)
難読化を突破してまで覗き見ようとする人間はたぶんいないと思うので、まぁいいでしょう。


ソフトの公開にあたって、ソフトのネーミングはちょっと悩みました。
爆打みたいなディープラーニングみたいなスマートな感じではなく、
全数探索というごり押しの手法を使ってるので、「脳筋くん」という名前にしておきました。
それで、現状は棒テン即リー全ツッパだけの単純AIなので、1号ということで。

それにしてもグラフィックはなしで、ある程度変数や関数の下地を作っていたとはいえ、麻雀ゲームって1~2週間でできるものなんですねー。意外と簡単にできてびっくり。

麻雀ゲーム・麻雀AI製作その7・自分鳴き処理2
自分鳴き処理について、できてないところを追加しました。

まずは加カン処理について。
170202-01.png
自分の切り順で加カンできる牌があるときに、「切る」ボタンの左のコンボボックスで加カン(「KK」)が選択できるようにしました。

170202-02.png
加カンしたら嶺上牌をツモって、1枚捨てる。切ったと同時にカンドラがめくれる。

暗槓処理について。
170202-03.png
加カンと同様、自分の切り順で暗槓できる牌があるときに「AK」を選択可能。

リーチ状態のときは、待ちが変わらないときに暗槓可能ということにしました。送り槓は禁止。(ツモってきた牌で暗槓できるときのみ。)
実際のルールはメンツ構成が変わるときとか九連がらみの牌姿でも暗槓できないとかもあった気がするけど、今のところは難しいので入れてないです。
170202-04.png
暗槓はカンドラ即乗り。
170202-05.png
裏ドラがちゃんと2種牌載っていることも確認。

なお、暗槓と加カンのテストをするにあたっては、いちいち槓子ができるまで繰り返すとかは大変すぎるので、配牌に中暗刻がくるように山牌を細工しています。なんだかいかさま師のような気分である。
170202-06.png
嶺上開花を確認。
170202-07.png
槍槓を確認。

嶺上開花の方は自手の都合だけだから山牌の細工は簡単だったが、
槍槓は他家の挙動がからむので、配牌で3m1p2sの暗刻だけを送っておいて、後は3種のいずれかが他家から出てかつポンした後にポンした牌が他家リーチの待ちになるまでひたすら繰り返しました。
ここまで山を細工しておいてもなかなか槍槓になってくれずに大変な思いをしました。


それにしてもカンのルールは実装するのがすごく大変ですねー。
嶺上だの槍槓だのカンドラだのと。
カンのルールを呪いたくなる気持ちがちょっとわかる気がします。

ルール面で細かく目につくところはあるけれども、一応これでだいたいのルールは完備できたので、
後はマニュアル作りとかもろもろの作業をやって、ゲーム部分を公開する手はずにしよう。
麻雀ゲーム・麻雀AI製作その6・自分鳴き処理
今回は自分鳴きの処理についてです。

えらく苦労しつつもそれっぽいものができたので動かしてみます。
170201-01.png
配牌ぐちゃぐちゃだけど白対子で鳴けそうな手ではある。
170201-02.png
7巡目でこの形…。上がりまですごく遠いけど、東白対子だからまぁ1mからでもポンで。
170201-03.png
晒し方(ポンorチーor大明槓と晒す牌)を選択して「鳴く」ボタン。(今回はN1m1m。Nはポン。Pでないのはピンズと紛らわしいので。)
自分の手牌が1mポンで1副露した状態になる。
続いて打牌選択。(鳴いている部分以外からの選択。)打3mで。

170201-04.png
その後東もポンしてなんとか聴牌までいく。(東ポンのところのスクリーンショットを取り忘れた。)
白も出たけど、まぁ現状両面だからスルーで。
170201-05.png
だけど、リーチ者にツモられて跳満親かぶりっと。

後、できてないのは暗槓と加カン。それと、鳴いて一発が消えるのと、大明槓後にドラが増えるのと嶺上開花も入れ忘れてた。
そこまでできたらいちおう、麻雀ゲームとして最低限動くレベル(ただし、CPUは鳴きなしの棒テン即リー全ツッパしかできない弱いCPUだけど。)ではあるので、一回どういうソフトになってるかを出してみてもいいかもしれない。(もうちょっと念入りにテストはしたいけど。)
天鳳とか市販の麻雀ゲームとかと比べたらグラフィック0で、牌の視認性が極めて低いけど、まぁ素人でもこの程度のものはできるぞ、と自慢したいだけです。
プロフィール

Author:nisi5028
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード