HOME | ドキュメント |  ブログ  |  BBS  |  瓦版  | 将棋プロジェクト |  物置小屋   

ドキュメント 象歩 Web瓦版
 BBSボード RDF
こんにちは (23)
おためし板 (321)
質問箱 (94)
テスト (30)
You散歩 (4)
建築 DIY (6)
MTB (32)
(9)
節電対策 (2)
このサイトに関する話 (186)
Linux (396)
PC用ハードウェア (6)
Vine Linux 野良系 (64)
PC 工作 (31)
ドローン (0)
自家製GAFA (0)
BBS の改良 (105)
Vine Seed (520)
Zope とプロダクト (95)
Web の利用技術 (131)
DB とファイルシステム (63)
Python と C/C++ と... (29)
Zopeプロダクト開発メモ (3)
UTF-8 化 (42)
Mail 環境 (8)
COREBlog (109)
Zope3 (51)
Windows 64bit (18)
Mac (2)
Squeak スクイーク (67)
Django ぶらり一人旅 (3)
64bits (52)
Mono 思いにふける (10)
Mint Linux (6)
CentOS (2)
ディスクトップ (4)
象歩将棋 (478)
将棋よもやま (210)
サイトのデザイン (31)
心配な話 (66)
うそ (21)
うそ総集編 (0)
昔のゲストブック (20)
ボート部 (23)
Web 日記 (199)
 スパム
逮捕しる (20)
スパムお溜り (47)
ごみ箱 (6)
 リンク
kiyoさんのサイト
ペンタ郎の漫漕ブログ
端艇部員日記
TIT漕艇部の練習動画 @YouTube
墨堤の雄 @FaceBook
ペンタ(五大学ミドル) @FaceBook
Facebook
Vine Seed パッケージビルド状況
Vine Linux パッケージ情報
VineLinux バグトラッキングセンタ
VineSeed 開発用 Trac
VineSeed Specs
RPMパッケージの作成方法
Linux Standard Base
Planet Vine
Vine Linux ユーザーフォーラム
Vine Users ML アーカイブ
VineSeed ML アーカイブ
twitter#VineLinux
勝手に将棋トピックス
詰将棋おもちゃ箱

象歩将棋

Webと将棋で何か具体的なもの作って行こうとしてます。


全476件 - 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
398  shu  2007/10/23 22:39 id: 3BVR6NRi4pQ  prob: 0.0%
プロファイリング
平手で少し進んだ局面。44手抽出に2秒/100万も時間を費やすので
$ gcc -p ...
結果は広く分散しちまってABC分析も使えない結果に。

いろいろ統廃合して再度測定してみると問題は数個のメソッドに収斂。
有効手を調べる処理に約70%の時間を費やしている。
盤面→駒セット変換に10%、手の保存に20%。
ちなみに、この辺のコードの改造はC++とvi環境ならそんなに苦にならない。

今はなんとか1秒/1M局面くらいにならないかなーって気分。
>397 悪い人はいません
でも食えないかも;;
397  pon  2007/10/21 20:38 id: ou/hhkgTDac  prob: 1.5%
>http://www.nminoru.jp/~nminoru/programming/bitcount.html
Version5はすばらしいですね
こういう所で心が動く人に悪い人はいません
396  shu  2007/10/16 22:57 id: 3BVR6NRi4pQ  prob: 0.8%
リファクタリング
ようやく基本ルールでの可能手抽出処理を整理できました
たとえば以下のようなコードになります
---
    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/44340...
395  shu  2007/10/15 20:20 id: 3BVR6NRi4pQ  prob: 0.1%
棋譜ブラウザ 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  2007/10/13 14:53 id: 3BVR6NRi4pQ  prob: 2.6%
> 木を見て森のような
うまいね^^
でも、まだツリーまで行ってませんから;;

ちなみに 96byte/局面、1,000,000局面/秒くらいは行けそうな予感
詰将棋の完全ツリー探索だと一秒以内で解けるのは 15 手詰めくらいまでかなー

> 思考を打ち切るロジックが先
御意
393  pon  2007/10/13 10:54 id: ou/hhkgTDac  prob: 1.0%
>駒一個で一手詰めは確かに存在するけど三手詰め以上・・・
>詰みが無いならロジック判定部分で少し得
さすが!
するどいですが、木を見て森のような・・
その局面にたどり着いた場面では、思考を打ち切るロジックが
先に動くことになりそうですね^^;
392  shu  2007/10/12 22:03 id: 3BVR6NRi4pQ  prob: 5.4%

では先手の駒一個だけの詰みは?
三手詰み以上で最終的にこういうことってあるのかな。
駒一個で一手詰めは確かに存在するけど三手詰め以上だとどうなんだろう。

平手の場合、遷移し最終的に駒一個の詰めに成ることがあり得るのかなー
もし詰みが無いならロジック判定部分で少し得をすると云うだけなんだけど;; (笑
391  shu  2007/10/12 21:54 id: 3BVR6NRi4pQ  prob: 0.1%

ステイルメイト
将棋なら勝ちですが、チェスの場合引き分けだそうです。
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%82%A4%E3%...
以前話題に上がったと思うけど、失礼

追記: ちょっと修正した;; 10/13
390  shu  2007/10/06 22:59 id: 3BVR6NRi4pQ  prob: 0.1%

駒移動の静的ルールクラス完了
コアな部分のコードは 1099 行

全移動リストは取得できるけどそのまま使うとは限らない。
全打駒リストはとりあえず作らないつもり。
*ある条件のもと*での手の抽出を考えないといけない。
やはり詰将棋を題材に考えるのが楽かな。

処理を 100 万回繰り替えして 0.8 秒くらい。改良の余地はあるけど今はこれで良し。
図をクリックすると実行出力みられます (図は村山隆治氏の流鏑馬100番の1)
389  pon  2007/09/22 19:04 id: ou/hhkgTDac  prob: 0.3%
>駒クラスは廃止
1度目のリファクタリングのとき抽象化でどの位すっきりするか試してみましたが、
結局思ったほどの成果がなく、2度目の構想を考えていました。
(実際、詰め将棋のところで汚いコードを書くはめに)
仕事と遊びに頭を占有されしばらく保留・・・とほほ

修チャンの構想をヒントに、また少しその気になってきました。
前回は将棋をチェス、チャイナ将棋、タイ将棋のように少しずつルールが異なる場合の
抽象化をやってしまったことに気が付きました。

今回の(リファクタリング)テーマは性能と疎結合化です。
日本将棋に絞り無駄な抽象化いっさいやりません。
ルールは静的に、ただし、ルールのロジックは要素(プレーヤ、盤、駒台、駒、・・・)
の構造に左右されない疎結合化を計ります。
また1から作り直しです。;;
全476件 - 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48