2012年3月12日月曜日

将棋ソフトのプログラミングについて 一人で将棋ソフトがプログラミングできるよう...

将棋ソフトのプログラミングについて

一人で将棋ソフトがプログラミングできるようになるには何をどのくらい勉強すればよいですか?

・言語は何がよいか?

・参考URL

等 お願いします。

プログラミングはCでほんの少しかじった程度です。

いきなり将棋ソフトのプログラムを書くのは絶対無理だと思いますので、



・(将棋ソフトに関係なく)プログラマーの方がする勉強の種類・方法を教えてください。

・初心者が一通り将棋ソフト(のようなもの)をくみ上げるまでの期間はどれぐらいでしょうか?

・独学が可能でしょうか



websiteについて



知っているのは下記のみです。他によいサイトがあれば教えてください。

コンピューター将棋協会

http://www.computer-shogi.org/

の会員になるのがよいでしょうか?

自分ではある程度の知識がないとついていけないのではと思っています。



うさぴょん Official HomePage

http://homepage1.nifty.com/Ike/usapyon/index.html



google やyahoo で雛形になるもの を検索したいのですが、そのときの検索ワードを教えてください。



よろしくお願いします。


|||



言語について



◎第19回世界コンピュータ将棋選手権 参加チーム

http://www.computer-shogi.org/wcsc19/team.html

を見るとわかりますが

C++,C,Python,verilog,Delphi,Java,C#

などがありますが、C++が一番多いようです。



websiteについて



Webで細かく書いてあるところはないです。

>うさぴょん Official HomePage

うさぴょんの作者である池泰弘さん

が2冊本を書いています。



コンピュータ将棋のアルゴリズム―

最強アルゴリズムの探求とプログラミング (I・O BOOKS)

池 泰弘 (著) 2005/2

http://www.amazon.co.jp/dp/4777511103/



Java将棋のアルゴリズム―

アルゴリズムの強化手法を探る (I・O BOOKS)

池 泰弘 (著) 2007/4/25

http://www.amazon.co.jp/dp/477751241X/



あとは、

コンピュータ将棋の進歩1~5

http://www.amazon.co.jp/dp/4320121546/

にも一部ソースコードの解説があります。

私は1から4までしか読んでいませんが…



他にソースコードを勉強するなら

ソースコードが公開されている

bonanzaやGPS将棋などが

コンピュータ将棋選手権使用可能ライブラリ

http://www.computer-shogi.org/library/

にてダウンロードできます。



GUIは作成しなくても、

将棋所というのがあるようです。

http://www.geocities.jp/shogidokoro/



|||



afloblue2001さんの回答に追加します。



Cをすこしご存知なら、言語はC++がよいと思います。

クラスが使えることは非常に大きいです。Cに追加されたほかの機能で読みやすくバグの少ないソースを書くことができます。使いこなせなければ、Cの機能を主に使えばよいのです。

スピードも速く、処理系によっては、優秀なデバッガも完備していますから、スクリプト系のpythonやrubyよりつくりやすいと思いますよ。



完成までの時間は、あなたのプログラムの腕前、そして数学的な素養がどれくらいあるか、ということが非常に大きいく関係します。



最近は、将棋対戦プログラムのソースを公表しているところがありますし、駒の移動やチェックのライブラリがあるようです。

しかし、それらを自分で作る位の腕前でないと先が思いやられるし、満足はされないと思います。





ここに質問に来る人にいつも言っているのですが、まず簡単に作ることができる、オセロの対戦プログラムを作られてはどうでしょうか。

インターフェイスをキャラクタベースにすれば、短期間で作ることができると思います。

その経験は、将棋プログラムで生きるはずです。



対戦プログラムで気をつけなればいけないことがあります。コーディングはやや難しいですが、書いている時間はごく短時間で、デバッグもさほど難しくはないと思います。問題は強くするための調整の時間です。これにそのほかの数倍、数十倍の時間が掛かってしまいます。

ですから、せっかくつくったから、といって、調整に膨大な時間を調整に費やすことになる恐れがあるということです。

だから、どれくらい時間をかけられるか、ということもよく考慮にいれて、取り組んでください。

そういうことは、オセロのプログラミングを一度やってみればわかるとおもいます。



なかなか完成しない将棋より、とりあえずは、min-max法と、アルファベータ法をまず学んで、オセロに挑戦してください。

0 件のコメント:

コメントを投稿