LogicalInSpace

ITについて

Bonanzaのソースコード

2009-12-14 20:54:45 | 将棋ソフト
bonanza_v4.0.3 を紙に出して見ました。
B5の用紙に出して見ると、約400ページありました。 (片面のみ)

最新は、保木さんのHPを見ると、bonanza_v4.1.2 みたいでした。
本格的に、ソースコードを解析をして、将棋ソフトを開発するつもりはないですが、時間がある時にどんな動きになっているかを見てみたいと思いました。

私は、長いソースコードでも紙に出して読む習慣があります。


<注意書き>
当たり前の注意書きをしたいと思います。
以下は専門用語が出てきますが、分からない方は読まないで(スルーして)ください。

プログラムは、パソコンに開発環境がなければ、開発は出来ません。
VC++、BCC などのコンパイラが必要になります。
※コンパイラはフリーでも落ちていますが、初心者は探す方が大変だと思います。
※また、開発環境を整えることも大変だと思います。

プログラムは、最低でも5か月の勉強が必要になります。 (個人差はあります)
通常はDOSのプログラム(最低3カ月)⇒Windowsのプログラム(最低2カ月)を勉強するのが普通です。 最低なので、1-3年以上かかる方もいます。
※期間については、真に受けないでください。 人によって、かなり個人差があります。 出来ない方は、一生出来ない方もいます。
※最低でも5カ月と書いていますが、1から勉強をして5か月で開発が出来れば相当、優秀だと思います。 でも、上には上がいますけど・・・。
同然、プログラムの勉強のみなので、パソコンの操作などは含みません。

普通のユーザーは意識をしませんが、Windowsは、ウィンドウループの仕組みを知らないとプログラムは書けません。

Bonanzaは、C言語で書かれています。
C言語は、手続き型プログラムなので、オブジェクト指向言語ではありません。
C言語なので、ポインター、構造体を知らないと解読は出来ません。
C言語の文法に精通していることと、C言語でWindows(Win32 API)の仕組み精通していることが前提です。

プログラムの用語などを検索をすると、色々と出てきます。
初心者は特に、用語に惑わされるので注意をしていください。

C言語、C++言語、Java、C#言語、JavaScript、PHPなどは、文法が非常に似ていますので注意してください。
C++言語は、C言語を含み以外は、すべて、違う言語です。

ソースコードは、約400ページあるので、それなりのプログラムの経験者を対象にしています。
<注意書き(ここまで)>

最新の画像もっと見る

6 コメント

コメント日が  古い順  |   新しい順
仰ることは正しいですが、初心者の方にこそ、ボナンザを改造してほしい気持ちがございます。 (ボナンザ改)
2009-12-28 17:37:15
将棋が好きな人
プログラミングが好きな人。

将棋AIの開発は、この2つだけではなく様々な知識が要求されます。

主さんの言うとおり、時間がかかるのは、当たり前です。

それでも私は皆さんに(特に初心者の方に)是非プログラミングをやってほしいと思います。

今がちょうど良い時期です。(笑)

プログラミングやるなら是非ボナンザがきっかけでプログラミングを初めてほしいと思います。

bitop.hビットマップ演算云々
param.h駒の点数
shogi.g思考ルーチン

逆引きで是非、初心者の方、ソースを理解するだけでも楽しいと思いますよ。
返信する
Re:仰ることは正しいですが、初心者の方にこそ、ボナンザを改造してほしい気持ちがございます。 (LogicalInSpace)
2009-12-28 20:01:47
ボナンザ改さん、こんばんは!

初心者とは、ITのブログに書かれてあるので、プログラムの初心者の意味だと解釈をしました。
※将棋のブログにも同じ内容を書いています。
将棋の初心者とは違いますね!

将棋はアマ5級だけど、プログラムに興味があり、プログラムは初心者の方ならば、それはそれでいいのではないのでしょうか?

別にLogicalは、初心者がしてはいけないとは書いていませんし、ただ、注意書きとして初心者(将棋の初心者、プログラムの初心者の両方を対象)に対して書いたまでのことです。

ここでは、初心者云々よりAI将棋に興味がある方は、色々と書いてもらえれば、分かる範囲でお答えます。
プログラムのこと、将棋のこと、AI将棋のことなどなど。

Bonanzaから、色々な話が出来るといいですね^^
コメントをありがとうございます。
返信する
返信有り難うございます☆ (ボナンザ改)
2009-12-28 21:49:50
こんばんわ。

はい。初心者とはプログラミング初心者のことをさしてます☆

最近、C言語、java、dbなどの本をどっさり買いました(笑)

プログラミングはブランクがありまして、次から次へと見事に忘れてました(笑)

管理人さんは、来年の世界将棋コンピューターは出場するのでしょうか?
私は機会があれば、出場したいと思ってます☆
返信する
Re:返信有り難うございます☆ (LogicalInSpace)
2009-12-29 00:08:31
ボナンザ改さん、こんばんは!

C言語系のプログラムは、お好きなようですね!
DBだと、SQL文を使いますね!

私の自宅の家計簿はSQL-Server 2005のDBを使っています。 DBだけはいいもの使っていますが、それに見合った内容ではないです。

将棋は、どれくらいの棋力なのでしょうか?

> 管理人さんは、来年の世界将棋コンピューターは出場するのでしょうか?
今の所は出場する予定はありません。
でも、Bonanzaが優勝した時は、現地に行ってリアルタイムで見ました。
保木さんは、カナダで出張だったので代理の方がノートパソコンを操作していました。

ノートパソコンでの優勝もすごいですが、アマ5級の棋力でチェスの文献より作成したソフトが強いのは、驚きでした。

でも、Bonanzaも加藤アマには、負けてしまいましたが、渡辺竜王のソフト対局は面白かったです。 △3九竜が読み筋にないのは、意外でした。

今後とも、ブログをよろしくお願いします。
返信する
こんにちわ (ボナンザ改)
2009-12-29 10:46:37
将棋道場の話ですが、初段スタート、現在三段です。

(勝敗やクラスにより、対戦者が決まります。)
ボナンザについては、いつも驚かされてます。(笑)
返信する
Re:こんにちわ (LogicalInSpace)
2009-12-29 11:32:36
ボナンザ改さん、こんにちは!

> 将棋道場の話ですが、初段スタート、現在三段です。
そうでしたか。 私も道場ではアマ三段ですよ!

私の自己紹介は、次に書かれています。
http://www1.odn.ne.jp/math_tsukuba/Myself.html

ブックマークをしているので、分かると思います。
将棋のブログです。
http://blog.goo.ne.jp/mathshogi/
ITのリンク集
http://www1.odn.ne.jp/math_tsukuba/Rink_IT.html

もし、よろしければ簡単な自己紹介でもして頂くと嬉しいです。

お互いに、プログラムと将棋を楽しんで行きましょう^^
返信する

コメントを投稿