

将棋と、ゲームエンジン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
━━━━━
        
        
            
             ちゆり「 そして、サンプル・プログラムを作ってみたんだぜ☆ 」
ちゆり「 そして、サンプル・プログラムを作ってみたんだぜ☆ 」
            
            
            
         
        
        
        
        
        
        
        
        
        
        
        
        
        
        
           またのお越しをお待ちしております