>http://www.nminoru.jp/~nminoru/programming/bitcount.html
Version5はすばらしいですね
こういう所で心が動く人に悪い人はいません
象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
投稿フォーム:
リファクタリング
ようやく基本ルールでの可能手抽出処理を整理できました
たとえば以下のようなコードになります
---
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
棋譜ブラウザ 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/
> 木を見て森のような
うまいね^^
でも、まだツリーまで行ってませんから;;
ちなみに 96byte/局面、1,000,000局面/秒くらいは行けそうな予感
詰将棋の完全ツリー探索だと一秒以内で解けるのは 15 手詰めくらいまでかなー
> 思考を打ち切るロジックが先
御意
>駒一個で一手詰めは確かに存在するけど三手詰め以上・・・
>詰みが無いならロジック判定部分で少し得
さすが!
するどいですが、木を見て森のような・・
その局面にたどり着いた場面では、思考を打ち切るロジックが
先に動くことになりそうですね^^;
ステイルメイト
将棋なら勝ちですが、チェスの場合引き分けだそうです。
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
>駒クラスは廃止
1度目のリファクタリングのとき抽象化でどの位すっきりするか試してみましたが、
結局思ったほどの成果がなく、2度目の構想を考えていました。
(実際、詰め将棋のところで汚いコードを書くはめに)
仕事と遊びに頭を占有されしばらく保留・・・とほほ
修チャンの構想をヒントに、また少しその気になってきました。
前回は将棋をチェス、チャイナ将棋、タイ将棋のように少しずつルールが異なる場合の
抽象化をやってしまったことに気が付きました。
今回の(リファクタリング)テーマは性能と疎結合化です。
日本将棋に絞り無駄な抽象化いっさいやりません。
ルールは静的に、ただし、ルールのロジックは要素(プレーヤ、盤、駒台、駒、・・・)
の構造に左右されない疎結合化を計ります。
また1から作り直しです。;;
平手の開始局面で指せる手は 30 通り
一手見つけるのに 0.026 秒 / 1,000,000
局面のコピーは 0.33 秒 / 1,000,000
局面の評価は、いったいどのくらいの時間が必要となるだろうか
某ソフトは普通の PC で一秒に三十万局面読むそうな。気になる。
http://www.geocities.jp/bonanza_shogi/