象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
↪ 新規投稿する
399 shu #f0c10dc 2007/10/24 22:24 prob:0.0%
> なんとか1秒/1M局面くらいにならないかな 成りました 可能手44手リストアップするのに 0.92秒/100万 # 環境は Athlon 3700+ linux x86_64 メモリ1GB # ソースコード 1445 行、バイナリ 237,551 バイト 王手の判定メソッドなどを作るだけで、このまま詰将棋を解くプログラムは作れるかも。 でもいろいろ事情があるので、このへんで作業はちと一休みします。ごめん。
398 shu #f0c10dc 2007/10/23 22:39 prob:0.0%
プロファイリング 平手で少し進んだ局面。44手抽出に2秒/100万も時間を費やすので $ gcc -p ... 結果は広く分散しちまってABC分析も使えない結果に。 いろいろ統廃合して再度測定してみると問題は数個のメソッドに収斂。 有効手を調べる処理に約70%の時間を費やしている。 盤面→駒セット変換に10%、手の保存に20%。 ちなみに、この辺のコードの改造はC++とvi環境ならそんなに苦にならない。 今はなんとか1秒/1M局面くらいにならないかなーって気分。 >397 悪い人はいません でも食えないかも;;
397 pon #c1161e8 2007/10/21 20:38 prob:0.0%
>http://www.nminoru.jp/~nminoru/programming/bitcount.html Version5はすばらしいですね こういう所で心が動く人に悪い人はいません
396 shu #f0c10dc 2007/10/16 22:57 prob:0.0%
リファクタリング ようやく基本ルールでの可能手抽出処理を整理できました たとえば以下のようなコードになります --- CPieceMoves moves(手番、局面) CMoveList mlist; const CMove* p = moves.next(); while (p) { mlist.add(p); p = moves.next(); } --- 後は CMove インスタンスを評価するだけ ちなみに 15 手抽出に 0.7秒/100万 (二歩、王手関連などはまだ含まない) とりあえず普通のロジックで済ませてます & スレッドセーフ まだ以下のような世界は怖いので踏み込んでいません http://www.nminoru.jp/~nminoru/programming/bitcount.html http://www.amazon.co.jp/gp/product/product-description/4434046683/ref=dp_proddesc_0/249-1507709-3987558?ie=UTF8&n=465392&s=books
395 shu #f0c10dc 2007/10/15 20:20 prob:0.0%
棋譜ブラウザ 0.5.5 for Win ftp://owa.as.wakwak.ne.jp/pub/shogi/windows/ 明日から第20期竜王戦なので負担にならないように If-Modified-Since 対応版です サイトにはもう盤駒が用意されてるようです。 http://live.shogi.or.jp/ryuoh/kifu/071016.kif 試してみたところ、二回目でちゃんと 304 Not Modified が返って来ました。 と言いながら、まあ本当の竜王戦サイトや 2ch で鑑賞された方が楽しいとは思いますけど;; http://live.shogi.or.jp/ryuoh/ http://www2.shogi.or.jp/live/
394 shu #f0c10dc 2007/10/13 14:53 prob:0.0%
> 木を見て森のような うまいね^^ でも、まだツリーまで行ってませんから;; ちなみに 96byte/局面、1,000,000局面/秒くらいは行けそうな予感 詰将棋の完全ツリー探索だと一秒以内で解けるのは 15 手詰めくらいまでかなー > 思考を打ち切るロジックが先 御意
393 pon #c1161e8 2007/10/13 10:54 prob:0.0%
>駒一個で一手詰めは確かに存在するけど三手詰め以上・・・ >詰みが無いならロジック判定部分で少し得 さすが! するどいですが、木を見て森のような・・ その局面にたどり着いた場面では、思考を打ち切るロジックが 先に動くことになりそうですね^^;
392 shu #f0c10dc 2007/10/12 22:03 prob:0.0%
では先手の駒一個だけの詰みは? 三手詰み以上で最終的にこういうことってあるのかな。 駒一個で一手詰めは確かに存在するけど三手詰め以上だとどうなんだろう。 平手の場合、遷移し最終的に駒一個の詰めに成ることがあり得るのかなー もし詰みが無いならロジック判定部分で少し得をすると云うだけなんだけど;; (笑
391 shu #f0c10dc 2007/10/12 21:54 prob:0.0%
ステイルメイト 将棋なら勝ちですが、チェスの場合引き分けだそうです。 http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82%A4%E3%83%AB%E3%83%A1%E3%82%A4%E3%83%88 以前話題に上がったと思うけど、失礼 追記: ちょっと修正した;; 10/13
390 shu #f0c10dc 2007/10/06 22:59 prob:0.0%
駒移動の静的ルールクラス完了 コアな部分のコードは 1099 行 全移動リストは取得できるけどそのまま使うとは限らない。 全打駒リストはとりあえず作らないつもり。 *ある条件のもと*での手の抽出を考えないといけない。 やはり詰将棋を題材に考えるのが楽かな。 処理を 100 万回繰り替えして 0.8 秒くらい。改良の余地はあるけど今はこれで良し。 図をクリックすると実行出力みられます (図は村山隆治氏の流鏑馬100番の1)