

将棋と、ゲームエンジンAIMSと、きふわらべ☆ww\(^▽^)/
きふわらべ をご存知だろうか☆ww
━━━━━

ちゆり「 きふわらべ をご存知だろうか☆ww 」

夢美「 将棋のルール通りに指せない将棋エンジンね 」

ちゆり「 きふわらべのプログラム、ごちゃごちゃ しているんだぜ☆ww
すっきりさせたい☆!
『将棋』と『画面』、まったく異なる2つのプログラムを 分割したい☆ww!
それが 今回の記事のテーマだぜ☆」

夢美「 将棋の『画面』は全部任せられるプログラム、
『将棋所』 を使いなさいよ!
あるものを使いなさいよ! 」

ちゆり「 ゲーム画面も作りたいんだぜ☆ww
『将棋』と『画面』について説明するんだぜ☆ww 」
将棋を ご存知だろうか☆ww
━━━━━

ちゆり「 氷の心を持たなければならない☆!
将棋 という スポーツ をご存知だろうか☆ 」
夢美「 陸上競技なのかしら 」

ちゆり「 ゲームや スポーツというと、みんなでワイワイ楽しむ というイメージがあったんだが、
将棋は違う ということは 小学生の頃から知っていた☆ww
出合ったみんなの 夢や 希望を 粉砕していく☆ のが将棋だぜ☆ 」
夢美「 競技って そんなものじゃない 」

ちゆり「
ゲーム内容 は、 自分と相手で 1個ずつ持っているボス駒を、 先に取った方の勝ちだぜ☆ 」
夢美「 風船割りのように言うのね 」

ちゆり「 その風船を、他の駒を使って
ガチガチに固め たり、
逆に
バサバサと捨てて いくことで、自分の風船を守りつつ、相手の風船を
1手でも早く先に 割る☆
このゲームは 30分~2時間、 2人で交互に100の手番を回すぐらいで終わるんだぜ☆ 」
夢美「 時間がかかるのねぇ 」

ちゆり「 その時間は、
400万回遊んでも、おんなじゲーム展開には まずならない ぐらいの
広さで 遊べる☆
プロですら 将棋という広場は 探検しつくしていないんだぜ☆
オンラインゲーでもないのに、「攻略本」というものが年々、更新される☆ これは驚異的だぜ☆
これを、ゲームの底が深い、奥が深い、と表現する☆ 」
夢美「 サウジアラビアの油田みたいね。
いつ掘りつくされるのかしら? 」

ちゆり「 コンピューターでも、あと50年以内には 掘りつくされないだろう、と言っている人もいるし、
少なくとも 地球にある原子の数と同じだけ 記憶を持てないと全部見れないから 先は長い と言っている人もいる☆
将棋盤の前に座ったときの これからどう遊ぼう、という 新鮮な気持ち は、1つの楽しみだぜ☆
毎回、新鮮☆ まあ、粉砕されるんだが 」
画面 をご存知だろうか☆ww
━━━━━
通信 をご存知だろうか☆ww
━━━━━

ちゆり「 通信をご存知だろうか☆? 」

夢美「 送信と、 受信よ! 」

ちゆり「 将棋エンジンも、文章を 送信したり、受信したり しているんだぜ☆
そのお便りを 読んだり、返信を送ってくる 相手は、
将棋サーバー と呼ぶ 」

夢美「 きふわらべに 将棋サーバー なんか付いてないわよ 」

ちゆり「 きふわらべでは、
将棋エンジンを きふわらべ が、
将棋サーバーを わたし が、
やっている☆w 」

ちゆり「 わたしが きふわらべに向かって
わたし きふわらべ
『起きろよ』 →
とメッセージを送ると、
きふわらべは 『起きろよ』とは何なんだぜ☆
← 『むくり☆』
と返信☆
わたしは 『むくり☆』とは何なんだぜ☆
『7七歩』 →
と返信☆
きふわらべは 『7七歩』か☆
← 『2四歩』だぜ☆
と返信する☆
わたしは 『2四歩』とは何なんだぜ☆
『わたしの勝ちだ』 →
と返信する☆
きふわらべは 何が『わたしの勝ちだ』なのかなんだぜ☆
← 『やーめた』
と返信する☆
勝ちか 負けかは、
将棋サーバーである わたし が決める んだぜ☆ 」

夢美「 かんじんの部分を 手動でやっているのね 」

ちゆり「 違うんだぜ、ちょっかいだけを 手動でやっているんだぜ☆
自動でやりたいところは、自動 でやっている☆w
将棋エンジンも、 将棋サーバーも、
どちらも、かんじんな
『将棋』と『通信』だけやっている、 と言えるんだぜ☆
次の1手を指図したり、
ルール変更を指図したり、
にんげんは、
コンピューターがやっているあいだに割り込んで、ちょっかいを出したいんだぜ☆! 」

夢美「 じゃあ、ちょっかいを出しなさいよ 」

ちゆり「 にんげんは やりたい放題エラーするし、あれやりたい、これやりたいと すぐ膨らむし☆
にんげんが触るプログラムを作る方が
細かくて 要求がどんどん増えて すぐ複雑になる大仕事 なんだぜ☆ww 」

夢美「 将棋所では満足できない? 」

ちゆり「 細かくて 要求がどんどん増えて すぐ複雑になる大仕事な部分を
じぶんで 作りたいんだぜ wwww 」

夢美「 じゃあ作りなさいよww! 」
インターフェース というのを
ご存知だろうか☆ww
━━━━━
具体的には どうやるのか☆ww
━━━━━

ちゆり「
ビデオゲームの途中に 将棋エンジンとの通信が始まればいいんだぜ☆ 」
通信は、つぎの間で行うものとするぜ☆
C#将棋エンジン ←→ C#将棋サーバー ←→ ゲームエンジンAIMS
(A)
問題にしているのは、 上図(A) の通信なんだぜ☆
(A)のゲームエンジンAIMS側でやりたいもの
======================================
・C#将棋サーバー(別プロセス)を起動する
process_start( "./KifuWarabe/Server.exe" )
・C#将棋サーバー(別プロセス)へ、メッセージを送る
send( "7七歩" )
・C#将棋サーバー(別プロセス)からの、メッセージを毎フレーム調べる
function gui_OnStep
message = receive() -- "2四歩"
~略~
end
(A)のC#将棋サーバー側でやりたいもの
===================================
・ゲームエンジンAIMS(別プロセス)へ、メッセージを送る
send( "2四歩" )
・ゲームエンジンAIMS(別プロセス)からの、メッセージを毎フレーム調べる
while(true)
{
message = Receive() -- "7七歩"
~略~
}
ちゆり「 がんばれば、作れそうじゃないか☆? 」
そして 作った☆ww
━━━━━
ちゆり「 そして、サンプル・プログラムを作ってみたんだぜ☆ 」
またのお越しをお待ちしております