こまおに学ぶ将棋の技術

シェアする

ほどよく弱い将棋ソフト「こまお」。弱いと言っても駒の動かし方を学んだばかりの人では簡単には勝てません。本当の初心者なら「こまお」に10枚落としてもらっても勝てないぐらい。こまおの棋力は20級を超えるぐらいでしょうか (ちなみに初心者は30級超です)。

将棋を覚えてある程度指せるようになった時の最初の敵が「こまお」という方も多いと思います。「彼を知り己を知れば百戦殆うからず」と言います。この記事ではこまおがどのように考えているか、どうすればこまおに勝てるのかを考察します。

こまおの思考プログラム

幸い、こまおはJavascriptという言語で全て書かれていますので簡単に思考プログラムを見ることができます。思考は http://www.geocities.jp/komao81/js/ai.js に書かれていて、moveScoringという関数が手の良し悪しを計算しています。では、こまおはどのような手を良い手(悪い手)だと思っているのでしょうか?

駒の点数

まず駒ごとに点数を付けます。歩:100、香・桂:500、金・銀:600、角:1300、飛:1400点です。歩が100点なのは将棋ソフトによくある点数の付け方です。
点数の比率は将棋ソフトによっても違いますし、将棋の入門書によっても異なります。前に紹介した「はじめてでもたのしめるかんたんマスター将棋」では、5,30,35,55,60,95,100 の順でした。

初心者のうちは大雑把に駒の大きさの順に点数が高いと覚えていれば良いと思います (私もきっちりと点数を押さえているわけではありません)。

次に成った駒の点数です。こまおでは一律+300点としています。と金が400点、成香が800点ですね。普通の将棋ソフトは「と金」の価値はもっと高くなっていますが、こまおはプログラム側でと金を特別扱いしています。

駒得が基本

こまおは基本的には上記の点数を元に「駒がタダで取れるか」「成れるか」「取り返されるか」「タダ取りされそうか」を計算して手を選んでいます。

歩がただ取りできる(+100点)としても、飛車がタダで取られそう(-1400点)なら飛車を逃げます。歩で角を取って、その歩が取り返されても 1300-100=1200点の得です。

これらの計算を全ての手に対して行い、もっとも良さそうな手を選んでいます。

ただし同じ展開にならないように乱数も使っていますので、必ずしも最善手を選ぶわけではありません。

何手読んでいるのか?

駒の取り合い以外は1手しか読んでいません。取り合いの場合は清算した点数を計算しています。複数箇所での取り合いは見ていません。

駒の取り合いが発生しなければ、まったく先は読めていません。猫ですし。

序盤戦術や駒組という概念もありません。猫ですし。


こまおに勝つには?

結局、こまおと同等になるためには、これら3つの技術が必要になります。

  • 取れる駒が把握できる(双方の浮駒と利きが全てわかる)
  • 駒の価値がわかる
  • 取り合いの結果が計算できる

これらの技術は将棋が得意な方(10級ぐらい)ならある程度把握できていますが、初心者からすると難しい技術です。
20級ぐらいの方だと浮駒を把握できずに駒をタダで取られたりするのは良くあることですし、玉のタダ取りで勝敗が決まるのもありがちです。ましてや将棋を覚えたての方なら把握できていないのが当然です。

少なくとも浮駒については盤面を一瞥しただけでわかるようにならないと、こまおに勝つのは難しいと思います。

(これらの技術については「はじめてでもたのしめるかんたんマスター将棋」のレッスン3に詳しく書かれています)

こまおに勝つ例

こまおは先を読んでいませんので、飛車先の歩を交換して歩を垂らせば、簡単にと金を作ることができます。
そのと金を使えば、運が良ければ角が取れますし悪くとも歩と銀桂香のどれかを交換しての駒得ができるはずです。
あとは飛車を成り込んで(こまお的には+300点)、得した駒を使って わらしべ長者のように駒を剥がしていけば勝てるはずです。


もし、これで勝てない場合は「駒をタダ取りされている」か「取り合いしたら駒損」しているかのどちらかだと思います。少なくともタダ取りされている間は勝つのは難しいです。

1手指す前に、双方の浮駒をチェックしてください。1手指したあとの盤面を想像して、タダ取りされる駒がないか確認してみてください。
それだけでも「こまお」と対局したときの勝率が変わってくると思います。

Enjoy!


なお、浮駒については前に記事を書きました。参考まで

こまおと対局できるサイト