将棋プログラム作ります

このエントリーをはてなブックマークに追加
1nori ◆eBfDXvRsdI
趣味で将棋のプログラムを作ってみようと思います。
過去に本格的な人工知能プログラムを作ったことはありません。
私は将棋についてはルール+α程度しかしらないので、
将棋でわからないことに関しては皆さんに相談したいと思っています。

作っている途中のソフトは順次対戦できる状態で公開していくつもりです。
仕事の合間にちょっとずつ作っていくので、作成スピードは遅いと思いますが、
興味のある方は是非お付き合いください。よろしくお願いします。
2名無し名人:2006/12/10(日) 11:44:31 ID:crCdpja1
野月はゲイ
3名無し名人:2006/12/10(日) 11:44:53 ID:cDr7JYi1
雛形くらい作ってから故意

−−−−−−−−−−−終了−−−−−−−−−−−−
4名無し名人:2006/12/10(日) 11:45:34 ID:Uj5VGp2S
はーい
5名無し名人:2006/12/10(日) 11:45:42 ID:G39u/wqA
定跡「先手:8七歩」
6名無し名人:2006/12/10(日) 11:46:19 ID:DvAsU3zz
木楽の初カキコ
思い出した。
7名無し名人:2006/12/10(日) 11:48:28 ID:zdNluLAh
今すぐ指したいからソフト貼りつけてくれ。
ソフト名は何っていうの?
8名無し名人:2006/12/10(日) 11:55:38 ID:Uj5VGp2S
俺流将棋
9名無し名人:2006/12/10(日) 11:57:56 ID:m0Bc9x7i
今までのと同じだと面白くないからなんか画期的な機能付けてくれ
10名無し名人:2006/12/10(日) 12:02:26 ID:PiFIEih6
プログラム板にそんなスレあるよね
そこで情報収集するといいかも
11名無し名人:2006/12/10(日) 12:33:31 ID:frOE3Bvv
1です。
スレの代理立ちあげを依頼していたので、今は外出していて即レス出来ません。
今夜帰ったらレスします。書き込みありがとうございます
12名無し名人:2006/12/11(月) 09:57:35 ID:DfgT3D5W
まだ?
13名無し名人:2006/12/11(月) 10:46:48 ID:Co+wIGrb
打倒ボナンザあげ
14名無し名人:2006/12/12(火) 17:52:13 ID:tA02KBSy
うさぴょん本は買ったか?
15名無し名人:2006/12/13(水) 11:37:22 ID:WpCw0t1e
レスしてないじゃないか (゚Д゚)ゴルァ!!
釣りだったの?
16名無し名人:2006/12/13(水) 12:59:48 ID:kV/6Pbi7
最近この戦形じゃ勝てないから別の戦形を取るとか。
こういった情報をDB化していけば心理を模擬しながら強くなっていけると思うが。
17名無し名人:2006/12/13(水) 13:02:08 ID:zFsEYT2g
>15
すみません、規制中です。これは携帯からです
18名無し名人:2006/12/13(水) 13:11:09 ID:E626OMqN
将棋の番組表?
19名無し名人:2006/12/13(水) 13:16:47 ID:CfowVbRs
定跡や戦形等の情報を一切与えずにルールだけからスタートして遺伝的アルゴリズムとか
ニューラルネットでどこまでいけるかやってみたい。
20名無し名人:2006/12/13(水) 13:18:25 ID:ElZEWKfX
脱衣将棋頼むよ
GISの少佐かストパニのたまおちゃんか
21名無し名人:2006/12/13(水) 13:51:34 ID:z7PMkJBF
「作りました」なら使ってもいいッ!
22名無し名人:2006/12/13(水) 14:06:38 ID:kSIykUNe
作りますから作りました、間での間に相当時間がかかりそうな気がするんだ・・

ちゃんと全部のコマの画像を作るだけでもそんなにカンタンでもない。
適当に五角形書いて文字貼り付け、でごまかせる時期はそう長くない
23名無し名人:2006/12/13(水) 14:42:41 ID:4TMHsysQ
脱衣将棋なら、実在の女流をモデルにしてくれ
24nori ◆eBfDXvRsdI :2006/12/14(木) 02:59:37 ID:t6DGEl/R
規制が解除されたようなので書き込みします。

今回私が作るソフトは、他の将棋ソフトと同じく、強さを追い求めて行きたいと思います。
Bonanzaという素晴らしいソフトに負けないくらい強いものを作る意気込みで頑張ります。
最終的なビジョンは名人打倒です。

合間合間にアルゴリズムをチェスのCrazyhouseにも応用してFICS等で戦わせるといいかも…。

>>19
遺伝的アルゴリズム(もしくは遺伝的プログラム)は私も考えていました。
次の一手などで、正答率をキーとした遺伝的アルゴリズムは
評価関数の各パラメータの決定に役立つんじゃないかという気がしています。

>>22
仰るとおりですね。
とりあえずは日曜日にでも最低限動くプログラムを作ってみます。
25名無し名人:2006/12/19(火) 00:13:29 ID:Ta6wl7pd
そして火曜日になるのであった
26nori ◆eBfDXvRsdI :2006/12/19(火) 02:19:28 ID:CGvxVAeX
見てくださってる方がいらっしゃるとは思いませんでした。
たった一人だとしても、とても嬉しいものです。

年の瀬は仕事や忘年会で忙しくて思うように時間が取れませんが、
今のところ内部データ構造を作っているところです。
将来的にとにかく速くするために、コンパイラの最適化を狙って
あえてC++を使わずに書いているので、一度データ構造を作り直すと大変です。

ただ王様が前後に動くだけです。全くダウンロードする価値はありません
http://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi65755.zip.html
しかも、これを実行するためにはCSA将棋が必要です。

ただ王様が前後に動くだけですが、
・gccを使ってCSA将棋のdllを作ることが出来た(開発環境が整った)
・プログラム内部での盤面のデータ構造の最初のステップが整った
という感じです。

仕事の暇を見つけて、今年中にクソ弱いコンピュータを作ります。
千里の道も一歩から。頑張ります。
27名無し名人:2006/12/19(火) 15:17:37 ID:gz/dM47N
最初からうまく動くとは思えんし、スピードは置いといて、最初は動かすことに専念したほうがいいんじゃないの。
C++で丁寧に書いてもいいと思うけど・・・。

盤の内部構造はどうしたの?GNUChessでは64bitの変数を使ってたな・・・。チェスは8x8マスだから。
GNUShogiはソース見てないから知らんが。参考になるんじゃない、GNUだし。

まあ頑張ってくれ。
28nori ◆eBfDXvRsdI :2006/12/19(火) 15:56:20 ID:CGvxVAeX
>>27
チェスならCraftyという、とても強くてソースが公開されているソフトがあり、
過去にそれの思考ルーチンをいじって強さを比べたことがあります。
将棋は駒の種類が8個とコンピュータ向きですが、
駒の数が全部で40個、マスが9マスとこちらは若干半端なのが残念です。
今のところは全部32bit変数でビット演算で処理できるように苦心してますが、
どうせ後3回は書き直すことになるのでしょう。
29名無し名人:2006/12/19(火) 16:47:52 ID:eNuATbML
私には書かれている事は理解できませんが
強いソフトをがんばってつくって下さい。
30名無し名人:2006/12/22(金) 01:47:24 ID:LnALnt/G
ビット演算は早いけど可読性もへったくれもあったもんじゃないからな。
コメント多めに入れとかないと怖くてしょうがない。
31名無し名人:2006/12/22(金) 14:43:45 ID:zEIwj0Ri
強い人たちはビット演算が好きな気がするな・・・
頭の中が1と0でできてる人にとっては、そのほうが自然なのかもな・・・

最初の目標としては、「現局面で指せる次の1手を全て返す関数」とか作るんかな?
までも、それ使って単純に全検索した日には、5手先の局面まで調べるのに何分かかるやら・・・
ちょっと誰かが書いたソース読まないと分からんな。。
32名無し名人:2006/12/22(金) 14:52:36 ID:zEIwj0Ri
ニューラルネットワークは、正しい手を覚えさせるには、コンピュータが指した手の評価を
毎回フィードバックしてやる必要がある。例えば将棋の強い人がコンピュータの手を毎回採点
してあげるとか。とはいえ、そういうプログラムを書くことも難しいんじゃない?
まして手の採点までコンピュータ自身にやらせるなんて、まず無理だと思うな・・・
33nori ◆eBfDXvRsdI :2006/12/23(土) 00:07:36 ID:+kDNExbO
>>31
アイデアありがとうございます。
最初の目標としては、大筋はそんなところだと思っています。
ランダムじゃあまりにもあれなんで、駒の損得のみを考えるプログラムとかにするのかな。

しかし、コンピュータがコンピュータとして強くあるためには、
どうしても数手先までは全検索が必須かと考えています。
トレードオフなんでしょうけれど、可能ならば5手くらいは全検索できるようにしたいですね。
似た局面の評価値とかつかってなんとか出来ないのかな。

ニューラルネットワークは現段階ではあまり考えていませんが、
評価は既存のタイトル戦の棋譜を与えて、次の一手をいかに同じ程度に出せるか、とか
そういう形になるんでしょうかね。
チェスの世界でも有名なのは無いみたいですが、チェスは全手解析が楽だからかな。
34 ◆z0MWdctOjE :2006/12/25(月) 05:01:07 ID:FeDTT9Pj
私も作ってますよ。
頑張ってください。
35VODKA:2006/12/25(月) 11:40:16 ID:uGT+CYa8
プログラムとかわかんないから応援しかできんけど

ふぁいと!!
36名無し名人:2006/12/25(月) 11:54:29 ID:kZmbZfk/
・駒の損得
・玉の位置における各駒の点数
・敵味方利きの数計算

これは最低限に必要だろう。
コンピュータは玉頭戦に弱いので、
玉へのプレッシャーに関わる処理(具体的な案は出せないけど)をうまく組めるといいんだが
37名無し名人:2006/12/25(月) 12:10:07 ID:0ajLP+Yp
とりあえず、>>1はコテをつけて〜。
【機能案】
盤、駒、ルールは全て本体に入れといて、
プレイヤーをdllで作成、追加できるようにしてほしい。
この機能は、さまざまな対戦相手と対局できていいと思う。
参考になるソフトとして、麻雀ソフトだが、『まうじゃん』というのがある。
さまざまな打ち手がいておもしろかった。
プログラムできるやつもプレーヤーつくるところから始められるから敷居が低くなってよいと思う。
38名無し名人:2006/12/25(月) 12:25:23 ID:crCtlTkC
コンピュータは入玉阻止がヘタクソだよ
入玉しちゃえばほぼ勝てる(負けない)
39 ◆z0MWdctOjE :2006/12/25(月) 12:50:51 ID:FeDTT9Pj
>>37
CSA将棋はどうでしょう?
40えりか最強女流棋士:2006/12/25(月) 14:01:09 ID:uLP1Y0Gh
打倒ボナンザ☆
賞金だすよ♪
ただし、著作権などはすべてえりかに帰属します><
挑戦したい方は私のブログにコメントしてねvv
よろしくね
41名無し名人:2006/12/25(月) 15:01:45 ID:0ajLP+Yp
すまん。CSA将棋って名前は知ってるが、
どの言語でどうすれば作成できるのかを知らない。
よければ簡潔に教えてほしい。

俺も作成したことがあって、VBで盤画面、DLLで本体を作成してた。
詰め将棋7手詰めまで解けるようになるところまでできたが、
時間がなくなってやめたよ。
42名無し名人:2006/12/25(月) 15:14:28 ID:kZmbZfk/
>>37
プレイヤーによって、駒の損得点数や位置点数が違うのは面白そう。
xml等で外だしして誰でも設定できると面白い
43名無し名人:2006/12/25(月) 15:17:12 ID:7+zjZNE7
>>1
プログラムが出来上がってからスレ立てろ。ボケ
44 ◆z0MWdctOjE :2006/12/25(月) 15:59:49 ID:FeDTT9Pj
>>41
VCかBCでDLLを作ればよい。
棋譜が渡ってくるから次の一手を返すようにする。
45名無し名人:2006/12/25(月) 16:19:27 ID:S7gyod9n
>>1
はじめてつくるのに度胸あるね
いろいろ文句いわれるのもしかたないが、がんばってくだされ
それとどうでもいいがこれ書き込んでるときちょうどアニメで"簡単にはいかんと思うよ"としゃべってた
46 ◆z0MWdctOjE :2006/12/25(月) 18:20:13 ID:FeDTT9Pj
ボナンザの評価関数は

おまいら最強のリバーシプログラムしてみろよ
http://pc8.2ch.net/test/read.cgi/tech/1166749119/183
47名無し名人:2006/12/25(月) 21:50:00 ID:7QM87xhC
48名無し名人:2006/12/25(月) 22:10:06 ID:7QM87xhC
◇参考書籍◇
Game Programming Gems
Game Programming Gems 2 日本語版
Game Programming Gems 3 日本語版
Game Programming Gems 4 日本語版
ゲーム開発者のためのAI入門
ゲームプログラミング
ゲームエフェクトマニアックス
オンラインゲームプログラミング
リバーシのアルゴリズム C++&Java対応―「探索アルゴリズム」「評価関数」の設計と実装
コンピュータ将棋のアルゴリズム―最強アルゴリズムの探求とプログラミング
アマトップクラスに迫る―コンピュータ将棋の進歩〈5〉
アマ4段を超える―コンピュータ将棋の進歩〈4〉
コンピュータ将棋の進歩〈3〉
コンピュータ将棋の進歩〈2〉
コンピュータ将棋の進歩
コンピュータは名人を超えられるか
49名無し名人:2006/12/27(水) 13:34:03 ID:v5ZjWJbU
プロって中盤でこの手は駄目とか判断するけど、
実際は、事前に終盤まで研究しててデータベースをもっている。
だから、この局面(中盤)になったら勝ち、負けを『知っている』
だから判断が早い。
コンピュータでも事前に研究して、データベースをもっておけば、中盤強くなるよ。
データベースなしに中盤強くするのは、厳しいと思う。
50名無し名人:2006/12/27(水) 13:35:49 ID:v5ZjWJbU
枝狩りについて、
・明らかに駄目な手は除去
・データベースより以降終盤まで研究してて駄目な手を除去(微妙な手を除去できる)
51名無し名人:2006/12/27(水) 23:47:20 ID:fuwS5KfX
将棋板じゃなくてプログラム板に立てたほうがよかった気がする。
52 ◆z0MWdctOjE :2006/12/28(木) 00:32:44 ID:rRt8/lsj
>>51
既にありますよ。

おまいら最強の将棋プログラムしてみろよ part5 (682)
http://pc8.2ch.net/test/read.cgi/tech/1109307327/
5351:2006/12/28(木) 01:26:58 ID:mLqzE12d
>>52
うん、そのスレは知ってます。
ある程度のところまでは
将棋の棋力よりプログラミングの力のほうが明らかに大事だから
ム板のほうが適してると思った。
かなりつくりこんで行き詰まったときのアイデアとかは
ここの住民に聞いたほうがいい事もあるとは思うが。
あとコンピュータ将棋スレッドは今のまま将棋板でいいけど。
54名無し名人:2006/12/29(金) 00:25:45 ID:XIwGXIYh
できたらとりあえずひまそうなコテに片っ端から喧嘩を売るのも手かも。
そうするとこの板の住民に実力が分かりやすい。

最終的にはフサギコアタリに勝てるといいね。
55名無し名人:2006/12/29(金) 11:28:48 ID:U3Vsc5Ef
俺も作ろうかな。ボナンザGUI
56名無し名人:2006/12/29(金) 12:25:59 ID:0+XUW7y5
GUIはとっくに充実してるからイラネ
57名無し名人:2007/01/03(水) 12:20:09 ID:SS2oL8nB
もしかしてもう作るのやめた?
58名無し名人:2007/01/08(月) 05:23:13 ID:yQn7HlBJ
生きてますだけでいいからたまに書き込んでよ。
59名無し名人:2007/01/08(月) 13:44:16 ID:Yk0lpy+k
挫折したんだろ。
60名無し名人:2007/01/08(月) 18:25:05 ID:AUs9C40E
だろうな。詰め将棋部分を最適化するのにまず、第一の関門があるからな。
61名無し名人:2007/01/08(月) 19:20:02 ID:zvr/l+TE
どうせ作るなら24ソフトざしマクロ対応のがいいぜ
62名無し名人:2007/01/09(火) 05:24:04 ID:Kp8yp14b
詰将棋なんかはライブラリ流用でよい
63名無し名人:2007/01/09(火) 05:39:52 ID:CmYVPO+z
むしろなくてもいい
60が知ったかぶりに見えてきた
64名無し名人:2007/01/10(水) 10:23:22 ID:KsL52KCH
>>62
なにそれ?どこにあるの?
65名無し名人:2007/01/10(水) 15:17:16 ID:w3UkMxEX
OpenShogiLibにある
http://gps.tanaka.ecc.u-tokyo.ac.jp/osl/pukiwiki.php?%5B%5B%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%5D%5D

使ったことないから詳しくは知らないけど
局面を渡しさえすれば可能じゃないかな

俺はソースを頑張って読んでる状況
66名無し名人:2007/01/11(木) 16:16:05 ID:yzsMJVer
これってUNIX用?
WINDOWSでは使えない?
67名無し名人:2007/01/11(木) 17:03:13 ID:mrPXGqsb
>>66
移植希望
68名無し名人:2007/01/11(木) 17:22:47 ID:7ETbc+dh
"gps将棋 cygwin"で検索

cygwin上でなら使えるっぽい
69名無し名人:2007/01/18(木) 07:40:47 ID:GdQO+xuP
ttp://www.computer-shogi.org/
コンピュータ将棋選手権には出ないのか?
70名無し名人:2007/01/19(金) 01:26:33 ID:4EVtrjBS
ヤフーに接続するモジュールなら俺が作ってもいい、もし欲しければ。
71名無し名人:2007/01/19(金) 12:50:02 ID:udZq7n7S
それって将棋以外にも使えるの?
72名無し名人:2007/01/20(土) 02:17:27 ID:dLjVRyAf
>71 ヤフーオセロとかヤフーチェスなら、だいたい同じように使える
73名無し名人:2007/01/29(月) 08:09:59 ID:EMZe4hRB
で、どうよ?
74名無し名人:2007/01/29(月) 12:42:45 ID:2WxKqMn0
くれ
75名無し名人:2007/02/01(木) 01:32:07 ID:mb+alRWe
何を?
76名無し名人:2007/02/01(木) 14:08:30 ID:pMCIkZqn
ヤフーに接続して、自作ソフトからソフト指し出来るモジュールのソース
77名無し名人:2007/02/01(木) 14:10:09 ID:2QzqJU7S
高段者はみんな使っているしな
7870:2007/02/02(金) 00:26:13 ID:ZkRiriOc
>>74 今ちょと時間ないから、あとで作るよ。言語はjavaでよいの?
79名無し名人:2007/02/02(金) 10:20:21 ID:77VA5W7s
YahooがJavaだから、むしろその方がいいんじゃね?
でも接続ってどうする予定なの?
8070:2007/02/02(金) 23:27:30 ID:ZkRiriOc
どうって言われても困るが・・・javaアプリケーションでヤフーに直接接続する

将棋ソフトとは直接関係ないけど、ヤフー将棋のクライアントってしょぼいじゃん。
もっと便利なのをオリジナルで作れたらいいなぁと思ったわけですよ。
半分くらい作って飽きてやめたんだが・・・
81名無し名人:2007/02/04(日) 16:56:15 ID:wN5qpig9
それより将棋倶楽部24と接続って出来ないですか?
82名無し名人:2007/02/17(土) 10:59:41 ID:1E9rW6dW
ヤフーへの自動ログインは、ヤフーメッセのプロトコルの仕様は公開されてるみたいだから
それ見たら出来るんじゃない??

>>74
ttp://www.csync.net/service/file/view.cgi?id=1171677146

見ろ。コードがスパゲティのようだ。
83名無し名人:2007/02/17(土) 11:04:25 ID:1E9rW6dW
ヤバイ。久しぶりにプログラム書いてたら、なんかテンション上がってきた。
ttp://image.blog.livedoor.jp/news4vip2/imgs/4/c/4c23e110.jpg
84名無し名人:2007/02/17(土) 22:36:34 ID:iJGAeBoD
>>83
上がりすぎw
85名無し名人:2007/03/14(水) 09:24:55 ID:WqWBPMBm
hosyu
86名無し名人:2007/03/25(日) 18:52:47 ID:M8uH3YCC
あげあげ
87名無し名人:2007/04/04(水) 16:03:14 ID:3j4A5iof
ホシュ
88名無し名人:2007/04/22(日) 10:21:34 ID:yeUgcST0
保守ホシュ
89名無し名人:2007/05/01(火) 19:47:38 ID:w3O1fqqi
宣伝ですが、失礼します。

http://ex14.vip2ch.com/test/read.cgi/part4vip/1165734645/

ここで、『将棋の駒を擬人化してゲームにしよう』ってプロジェクトを進めてるものです。
で、駒を画面に表示させてCSAで動かすところまでは出来たんだけど、
その後、ギャルゲーみたいにシナリオを再生出来るようにしよう、って途中で、プログラム担当が失踪して、進まなくなったのです。
VC++で書いてるみたいなんだけど、ソースコードもなくて、逆アセンブリも出来なくて、困っているのです。
多分、こっちからのソースは一切提供出来ないと思うけど、もし、協力して頂けるなら、書き込んでくれると嬉しいです。
以上、宜しくお願いします。
90名無し名人:2007/05/01(火) 21:18:21 ID:BLUMnuwk
>>89
ワロタ、あれまだやってたのかw
91名無し名人:2007/05/01(火) 21:38:02 ID:w3O1fqqi
>>90
笑われても、反論の仕様はないですね。
超低空飛行状態です。
92名無し名人:2007/05/02(水) 13:28:35 ID:wQTG7SNa
完成してもそんなアニヲタ臭いのはやらないけど
93名無し名人:2007/06/11(月) 18:33:16 ID:ZN0x53k3
一ヶ月以上レス付いてないので保守。
ところでBC.exeを発表した人とここのスレ立て人はやっぱり別人?
94名無し名人:2007/06/11(月) 20:16:34 ID:nFPWqQ6V
>>89 は結局どうなったの

VIPで「将棋」で検索してもスレは一個もないし。Wikiは生きてるようだけど
思考部分についてはまだまだみたいだな
95名無し名人:2007/07/12(木) 20:29:02 ID:oF4Y3wl5
保守
96名無し名人:2007/08/16(木) 17:22:21 ID:yV26fsY3

97名無し名人:2007/08/20(月) 13:08:20 ID:P5aS4c98
こんなのがありました。
「将棋ゲームPCのメルマガ
http://www.game4pc.com/mailmag/
コンピュータ将棋ソフトの制作を目指す筆者が、将棋関連の様々なことについて考えるメルマガです。」
とのことですが、余り進んでいないようです。
98名無し名人:2007/08/20(月) 19:55:42 ID:JD6oiq8g
一応購読者。あと作者乙 >>97
99名無し名人:2007/08/20(月) 20:14:09 ID:eB8ulkY0
コレ使えると思わないか?
将棋GUIソフト
ttp://www.geocities.jp/shogidokoro/
100名無し名人:2007/08/22(水) 04:08:42 ID:+MLuw4Zd
思考が揃ってないから、まだちっとも使えない
101名無し名人:2007/08/22(水) 08:17:23 ID:BUGkht5B
CSA将棋と似たようなの増やしてどうすんだって気はする。
駒はきれいだけど。
102名無し名人:2007/08/22(水) 11:27:07 ID:u7TEAyTY
>>101
駒の綺麗さとかはどうでもいい
UCI互換の方が断然いい
103名無し名人:2007/08/22(水) 21:57:36 ID:uz1rECar
>>101
標準入出力でGUIと思考部がやり取りするから、C/C++以外で開発する敷居が低くなるってのがメリットじゃない?
まぁ、CSA将棋+ゲートウェイ+思考部(コンソールアプリ)って手もあるが。
104名無し名人:2007/08/22(水) 22:32:55 ID:+MLuw4Zd
CSAの設計がマズかったんじゃないかな、ボナは独自にコマンドを追加したりしてたし・・・
105名無し名人:2007/08/22(水) 22:36:56 ID:9Qvxr5Xw
>>101
プログラムのスレでバグとはなかなか良いIDだなw
106名無し名人
道理で?バグに悩まされるわけだ_| ̄|○