「十六式いろは」のあれこれ

コンピュータ将棋ソフトのエンジン「十六式いろは」の開発者のブログです。

自分の作ったソフトと真剣勝負(希望)など

「コンピュータ将棋 Advent Calendar 2016」の何番かバッターのすえよしです。よろしくお願いします。
「コンピュータ将棋 Advent Calendar 2016へのリンクはこちら。↓
コンピュータ将棋 Advent Calendar 2016

って、普通に4番なんですけどね。
今日はいろいろとイベントがあるみたいですし、このような日に
私が書くようなことしちゃって、ハードルが低くなっちゃってホントごめんなさい。

この日を選んだ理由は、高校時代の友達(だれか)の誕生日だった気がするな
程度です。(正しいとは言っていません)

とりあえず、タイトル通りに十六式いろはと将棋を指してみました。
(コメントのところで、こそっと自戦解説してます)

▲すえよし vs. ▽16siki-iroha v.4sdt8


えっと……
ここまででも、なにげに思っていたよりも時間かかっちゃいましたが
まぁ、そんなことはどうでもいいのです。
十六式いろはと指してみて、いろいろと思うところはあるのですが
とりあえず、第4回将棋電王トーナメント時の十六式いろはと指しても
私の棋力が上がらないのは確実だと感じました。
これからの私と、いろはに期待です。

さて、ここからは、違う話題にいこうかと。
コンピュータ将棋(将棋プログラム開発)を始めたいきさつは、
電王トーナメントのインタビューでも言いましたし、ツイッターでも書きましたが、
大事なことなので、もう一度書きます(あ……ぜんぜん大事じゃないです)

何年も前に、うさぴょんの池さんの書籍「コンピュータ将棋のアルゴリズム」を見かけたのがきっかけ。
今はHTML版がありますね。
コンピュータ将棋のアルゴリズム HTML版

書店で上記の本を見かけたとき、「将棋のプログラムって、どんな感じなんだろう?」とは
気になっていたので、後日本を買ってみたものの時間に追われたりで
結局まともに読んでいなかったり。
(※後日って言うのがまた数年経っていて、java版を買っていました)

我ながら、まったくやる気ないですねぇ。

そんなこんなで、ふと今年の叡王戦に関して、そういやこの山崎叡王って
矢内女流プロに公開プロポーズ?をしたとかしてないとかの人だった気が
ってなことで、気になりまして過去の話とかを見ました。

山崎叡王の「西の王子」についての話など、いやぁ笑わせていただき
山崎叡王のファンになりました(今、ここで初宣言w)
でも、叡王戦のときの山崎叡王はカッコよかったんですよ!

竹部女流プロVSてつじの指導対局でのガチさとか、
ホントいい感じでした。
実は、影ながら竹部プロのファンでもあるんですw
電王トーナメント時にお話できて、イエーイって感じでしたね。
あ……竹部プロじゃなくて、竹部プロと非常に縁のある
メカさゆりんさんと会話ができたんでしたw

あとは……まだ、ツイッターとかには書いていないのですが
小中学生の勉強を教えている仕事をしているのですが、
その中の一人に、とある女流プロの後輩がいまして。
(その子から、若干自慢されたのでw)
それがきっかけで、こっそりその女流プロを応援してたりしてます。
(別に書いてもいいんですけど、理由なく書かないでおきますw)

というように、ちょこちょこニコニコ動画で将棋の番組を見たりしはじめて
電王トーナメントを知ったんですね。
そこで、以下の記事を読んだんですよ。↓
「無敵囲い」が「新無敵囲い」に進化。名人コブラが魅せた独自の戦い | 将棋ワンストップ・ニュース

あぁ、これは私が出るしかないだろう!
うそです、調子に乗りました、ごめんなさい。
単純に、面白そうだなと思いまして。

強い将棋ソフトを早々すぐには作れないだろうし、
弱すぎると、大会に出るのが激しく恥ずかしいだろうなとも思っていましたが
上の記事で、勇気をもらいました!
主に、きふわらべと名人コブラにw
ツイッターでも書きましたが、今度こそ大事なので2回書きます。

心を動かされましたね。ネタ勢でもいいのか!?って、参加するだけならのハードルが、
ぴょいっと飛び越えれると思えるほどにさがりました(・∀・)ニヤニヤ

実際に参加したところ、本当にネタ勢でしたし、伝説の迷局を
繰り広げてしまいましたがw
(でもやっぱり、十六式いろははエンジョイ勢です)

と、ここまで技術的なことは全然書いていないので、
なんだこれ?ってことになりそうなので、少しだけ書きますw

C言語C++は、ソースコードがネットに転がりまくっているので
参考になりますし、コンピュータ将棋の先輩方も非常にやさしいので、
質問をぶつければ、きちんと返事を返してくれるでしょう。

ですが、一筋縄ではいかない苦労は必ずあるかと。
私も大学時代それなりにプログラミング(C言語)を学び、
Perlなどをいじり、CGIゲームなどもサーバに設置して
楽しんだりしていた者ですが、
一から組んでいったことと、ソースをそのまんまコピーは
気持ち的にいやだったので、どういう動作をさせたいかを
確認しながらソースを書いていったこともあり、苦労しました。
主に、大学時代に苦労した苦労を再びですがw

CなどではなくPythonなどなら、少しくらい苦労は減りそうですけど。
(プログラム言語的な意味で)
今はLuaって、弩マイナー(?)な言語で再開発し始めました。

ですが、その甲斐もあってか、
コンピュータ将棋GUIの将棋所で、1手指せただけでも
感動しちゃいました!

ここも大事なことなので、ツイッターでツイートしたことをコピーで貼り付けて
書きます。

将棋プログラムを作りはじめて、GUIは将棋所を使ったのでそのあたりの感動は
まだ味わっていませんが、エンジン登録して76歩(bestmove 7g7fと標準出力するだけ)と
一手指せただけでも、嬉しすぎて家族にドヤ顔して語りましたね……
(´-ω-`)ふーん.....って反応でしたがw

ドヤ顔ってw
そういえば、過去にドラクエ3で船を手に入れたときも、
同じように興奮覚めやらぬ様子で、ドヤ顔で親に
「ゲームで、船を手に入れたんやで!」と言って
ふーん……って反応をもらいましたね。我ながら痛いw

私のやっていることは、すでに20年も30年も前の将棋プログラム開発者たち
の苦労を、真似事っぽく繰り返しているだけなんですよ、きっと。

誰かの得になることなのか、コンピュータ将棋界の得になることか
と問われれば、「もちろん得になる」なんていえない技術なんです、私のは。

デバッグのやり方(プログラムを走らせて、怪しい動きのところを標準出力で
変数の中身を表示させて確認するなど)も、どうも数十年前のやり方で、
効率も悪いですし。

もちろん、ライブラリを使用してがんばっていくのもありというか、
むしろ普通かもしれないくらいに、ありだと思います。
私はその方法を取っていないだけで。

でもね、私は思うんですよ。
私個人の趣味ですし、私自身が楽しめて、かつ周りに迷惑をかけないのなら
弱いプログラムができちゃっても、別にいいんじゃないかって。
(あ、なんか私いいこと言ったんじゃないですか?ねぇ?ねぇ?w)

先日の第4回将棋電王トーナメントで、
おそらく私は一、二を争うくらいに楽しんじゃった勝ち組って
言い切れるんですよ。(当然ながら賞金はもらえていませんが)

自分の開発したプログラムの結果を、プロの棋士が解説していただける
なんてこともありましたし。
微妙な出来でも、ほめて(?)もらえればうれしいですし、
話題にしていただければもっとうれしい。

それに、電王トーナメント後にコンピュータ将棋開発用にツイッター
はじめたんですが、このようなアドベントカレンダーという
イベントにも勝手に参加しましたし、コンピュータ将棋を始めて
多くのコンピュータ将棋開発者と知り合えました。
私はうれしくて今すごく調子に乗っていますね。
迷惑をかけないようにしなければなりませんがw

願わくは、もう少しいろはを強くしたい、エンジョイ勢ですけどw
いろはを、将棋の初級者の味方になるようなものにしたい。

私の気力が尽きないで、エンジョイしている限り、
そしてネタ勢というライバルがいる限り、
コンピュータ将棋の大会には出続けたいなと思っています。

ちなみに、今のところ、ライバルは
第4回電王トーナメントで対戦したソフトたちです。
ちょこっとはいい勝負になるように、いろはの独自性(今は謎)も
出しつつ、ライバルたちと切磋琢磨していきたいですね。

これからも、どうぞよろしくなのです。

って、文章を全然推敲せずに、だらだら書き散らしてしまって
ごめんなさい。
(あ、でもきふわらべのむずでょさんよりも長さはマシかw)
自己満足はしていますw

なお、感想やつっこみなどは、ツイッターだと助かります。
(チェックしてるのはツイッターくらいなので)

ツイッターのユーザーID @16shiki168


P.S.
叡王戦の決勝第1局、千田プロ負けちゃったか……残念……