Hatena::ブログ(Diary)

棚瀬のブログ

2014-10-28

将棋が強くなるために必要なたった一つのこと(笑)

将棋クエスト(http://wars.fm/shogi10)の10分の棋譜を使って、レーティング区分と40手目までの各駒の移動回数との関係を調べてみました。

40手目までなので片方のプレイヤーが20手指します。

予想通り、レーティングが低い人ほど玉の移動が少なく、1400未満の区分では1.19回と、1900以上の区分の2.39回の半分しか玉を移動しないという結果になりました。

その他の駒については玉ほど顕著ではないですが、角の移動がレーティング上昇と共に着実に減っている、銀移動が1400〜1600で多いのは棒銀の影響?、最上位が玉、香車の移動が多いのはおそらく穴熊の影響、などといったことが見てとれます。

結論:強くなるには玉を囲いましょう。

まあ玉を囲うからレーティングが高いというよりはレーティングが高いから玉を囲うという因果関係のような気もしますが・・。

私も将棋を覚えたばかりの中学生の時は、玉を囲うと攻められるので囲ってる暇がない、という感覚でした。

f:id:tanase_yasushi:20141028183837p:image

〜14007.650.260.494.132.1222.121.19
1400〜15007.40.150.594.391.961.851.961.66
1500〜16007.50.170.534.421.981.721.821.92
1600〜17007.350.160.54.151.791.722.112.18
1700〜19007.190.220.554.11.91.72.12.19
1900〜7.280.260.484.211.831.472.042.39

2014-09-24

囲碁クエスト、将棋クエストなどのレーティング計算方法について

囲碁クエスト、将棋クエストのレーティングシステムについてよく聞かれるので説明しておきます。


ベースはごく普通のELOレーティングそのものです。

スタートは1500点、なんですが、表示は1000点にしています。あくまでも表面上で内部的には1500点です。

そして、40試合かけて1試合あたり(1500 - 1000)/40=12.5点を勝とうが負けようが表面レーティングに加えていきます。

つまり40試合プレーした段階で表面レーティング=真のレーティングとなります。

そのため、例えば1局目で負けて真のレーティングが-10点だったとしても+12.5点があるので、表面上は+2.5点の増加ということになり「負けてもレーティングが上がった」という状況が生じることになります。

あくまでも表面上の話なので、負ければ真のレーティングは必ず下がります。


例えば、20試合/1250点と40試合/1500点の人は内部レーティングは同じです。前者はまだ12.5x20=250点の表面レーティングの上昇分を使い切っていないので。


わざわざこうした方式を取っている理由ですが、実力1200点の人が1500点スタートにしてしまうと、せっかく記録している最高レーティングが1局も対戦しない状態といったことになってつまらないと思ったからです。


以上が基本的な話で、あとはレーティングの更新の重み(ELOレーティングのKの値)を状況によって変えています。

まず、新人は早く実力通りのレーティングに近づくようKを大きく。対局を重ねるに連れてだんだんと小さくなっていきます。

逆に、新人と対戦する相手側の変動は小さくしています。

例えばレーティングが追い付いていない(表面レーティングではなく真のレーティングも追い付いていない)新人の強豪にごっそりとレーティングを奪われる、という状況を緩和するためです。

あとはハンディキャップ戦(置碁、駒落ち)と、対bot戦の変動も若干小さくしています。

ハンディなしの人間同士の戦いがレーティング形成の中心になるのがいいだろう、という判断です。

2014-06-29

「将棋クエスト」Android版を公開しました

「将棋クエスト」Android版を公開しました。

https://play.google.com/store/apps/details?id=fm.wars.shogiquest&hl=ja

前回ここに記事を書いたのが6月9日で、その数日前くらいに着手したので、3週間ちょっとかかりました。

本当はiPhoneの審査にかかる1週間の間にAndroid版を完成させて同時リリースと目論んでいたのですが、なかなか計画通りにはいかないですね。

Androidはすぐにアップデートを出せるので、しばらく結構なペースで細かい修正を出していくと思います。


この3週間の間、サーバーの方も色々ありました。

例えば、botがたまに止まってしまったりとか。

botのエンジンは2007年ころの棚瀬将棋を引っ張り出してきて使ってるのですが、こいつが落ちる局面があるようで、一度エンジンが落ちてしまうとbotも全員死んでしまっていたので、そういう場合でも復活出来るようにしました。

あと、特に初級ユーザーの将棋も観戦して、botの強さの段階も充実させました。

今度また詳しく書くかもしれないですが、1手読みと2手読みの間にすさまじい差があるんですね。

これはレーティング差としてはっきりと出ました。

そこで、深さ1と2の間のレベルを深さ1.1手読み、1.2手読みという具合に作ってやったりしました。

これは以前YSSの山下さんに教えてもらった方法です。


まだ私が将棋クエストでやりたいことの5分の1も出来ていないですが、iPhone版はアーリーアダプターの方々のおかげで、公開当初から誰もいないという状態にはならず、その後も毎日着実にユーザーが増えているので、そこにAndroidからのプレーヤーが合流することで、より盛り上がってくれると嬉しいです。

f:id:tanase_yasushi:20140629221139p:image

2014-06-09

「将棋クエスト」iPhone版を公開しました

かねてより作っていた通常将棋のオンライン対戦アプリ「将棋クエスト」のiOS版を公開しました。

https://itunes.apple.com/jp/app/id884971827

Appleの審査は提出してから審査が開始するまでいつもきっかり1週間かかっていたのですが、今回は4日目にふとサーバーの様子を見てみると、iPhoneから将棋の対戦待ちをしている人を発見。

自分以外にiOS版を持ってる人はいないはずなので、つまりAppleの人が審査のために対戦待ちしているということです。

その時点ではまだbotの用意をしてなかったので慌てて私自身が対戦待ちにして、見事Appleの人との対戦が組まれ、無事に審査も通りました。

あの時私が気づかなかったらどうなってたんですかね。

「対戦出来ないぞこら」と言って落とされていたのかどうか。

工夫した点など、色々書きたいこともあるのですが、またの機会に。

まずはAndroid版を急いで作らないといけないです。

2014-01-15

「ついたて将棋オンライン」公開しました

YSSと彩の掲示板に投稿したものと同じ内容ですが・・

オンライン上でついたて将棋の対戦が出来るサーバーを作りました。

WEB、またはAndroidアプリ、Kindleアプリから対戦出来ます。

iPhone/iPad版も作りました。

10回反則、持ち時間10分を使い切る、または普通に詰まされると負けです。

是非一度遊んでみてください。

WEB http://wars.fm/tsuitate?lang=ja

Android https://play.google.com/store/apps/details?id=fm.wars.tsuitate

Kindle http://www.amazon.co.jp/dp/B00HV6NE40

iOS https://itunes.apple.com/jp/app/tsuitate-shogi-online/id836504687

Android版は将棋クエスト(https://play.google.com/store/apps/details?id=fm.wars.shogiquest)に統合しました。

技術的なこととしては、サーバーはnode.jsでWEBクライアントではbackbone.js使ってます。

Androidアプリは普通にJavaSDKでこれもbackbone.js風に作っています。

f:id:tanase_yasushi:20140118113824p:image