2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

将棋プログラム作ります

1 :nori ◆eBfDXvRsdI :2006/12/10(日) 11:44:00 ID:6iPA/8qe
趣味で将棋のプログラムを作ってみようと思います。
過去に本格的な人工知能プログラムを作ったことはありません。
私は将棋についてはルール+α程度しかしらないので、
将棋でわからないことに関しては皆さんに相談したいと思っています。

作っている途中のソフトは順次対戦できる状態で公開していくつもりです。
仕事の合間にちょっとずつ作っていくので、作成スピードは遅いと思いますが、
興味のある方は是非お付き合いください。よろしくお願いします。

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
脱衣将棋なら、実在の女流をモデルにしてくれ

24 :nori ◆eBfDXvRsdI :2006/12/14(木) 02:59:37 ID:t6DGEl/R
規制が解除されたようなので書き込みします。

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

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

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

>>22
仰るとおりですね。
とりあえずは日曜日にでも最低限動くプログラムを作ってみます。

25 :名無し名人:2006/12/19(火) 00:13:29 ID:Ta6wl7pd
そして火曜日になるのであった

26 :nori ◆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だし。

まあ頑張ってくれ。

28 :nori ◆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
ニューラルネットワークは、正しい手を覚えさせるには、コンピュータが指した手の評価を
毎回フィードバックしてやる必要がある。例えば将棋の強い人がコンピュータの手を毎回採点
してあげるとか。とはいえ、そういうプログラムを書くことも難しいんじゃない?
まして手の採点までコンピュータ自身にやらせるなんて、まず無理だと思うな・・・

33 :nori ◆eBfDXvRsdI :2006/12/23(土) 00:07:36 ID:+kDNExbO
>>31
アイデアありがとうございます。
最初の目標としては、大筋はそんなところだと思っています。
ランダムじゃあまりにもあれなんで、駒の損得のみを考えるプログラムとかにするのかな。

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

ニューラルネットワークは現段階ではあまり考えていませんが、
評価は既存のタイトル戦の棋譜を与えて、次の一手をいかに同じ程度に出せるか、とか
そういう形になるんでしょうかね。
チェスの世界でも有名なのは無いみたいですが、チェスは全手解析が楽だからかな。

34 : ◆z0MWdctOjE :2006/12/25(月) 05:01:07 ID:FeDTT9Pj
私も作ってますよ。
頑張ってください。

35 :VODKA: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
CSA将棋HP
http://www2.ttcn.ne.jp/~tsuma/

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/

53 :51: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が知ったかぶりに見えてきた

15 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)