象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
↪ 新規投稿する
390 shu #f0c10dc 2007/10/06 22:59 prob:0.0%
駒移動の静的ルールクラス完了 コアな部分のコードは 1099 行 全移動リストは取得できるけどそのまま使うとは限らない。 全打駒リストはとりあえず作らないつもり。 *ある条件のもと*での手の抽出を考えないといけない。 やはり詰将棋を題材に考えるのが楽かな。 処理を 100 万回繰り替えして 0.8 秒くらい。改良の余地はあるけど今はこれで良し。 図をクリックすると実行出力みられます (図は村山隆治氏の流鏑馬100番の1)
389 pon #c1161e8 2007/09/22 19:04 prob:0.0%
>駒クラスは廃止 1度目のリファクタリングのとき抽象化でどの位すっきりするか試してみましたが、 結局思ったほどの成果がなく、2度目の構想を考えていました。 (実際、詰め将棋のところで汚いコードを書くはめに) 仕事と遊びに頭を占有されしばらく保留・・・とほほ 修チャンの構想をヒントに、また少しその気になってきました。 前回は将棋をチェス、チャイナ将棋、タイ将棋のように少しずつルールが異なる場合の 抽象化をやってしまったことに気が付きました。 今回の(リファクタリング)テーマは性能と疎結合化です。 日本将棋に絞り無駄な抽象化いっさいやりません。 ルールは静的に、ただし、ルールのロジックは要素(プレーヤ、盤、駒台、駒、・・・) の構造に左右されない疎結合化を計ります。 また1から作り直しです。;;
388 shu #f0c10dc 2007/09/21 23:12 prob:0.0%
平手の開始局面で指せる手は 30 通り 一手見つけるのに 0.026 秒 / 1,000,000 局面のコピーは 0.33 秒 / 1,000,000 局面の評価は、いったいどのくらいの時間が必要となるだろうか 某ソフトは普通の PC で一秒に三十万局面読むそうな。気になる。 http://www.geocities.jp/bonanza_shogi/
387 shu #f0c10dc 2007/09/21 00:14 prob:0.0%
>383 駒クラス CPiece は後々コピーして使用するので 駒クラスは廃止 駒の特性を突き詰めると種類だけなので 3bit 相当のデータでしかない。 先手/後手や成りは場の属性と考えることにした。 たとえば駒のオブジェクトを 40 個用意してポインタを張ろうとか考えてたけど、 持ち駒になった場合には区別が無い。駒のインスタンス化は本質じゃ無い気がする。 やはり重要なのは場のコピー、インデクス変換、...の方だ
386 shu #f0c10dc 2007/09/19 23:10 prob:0.0%
竜王戦の挑戦者は佐藤。 http://live.shogi.or.jp/ryuoh/kifu/070919.kif 棋譜ブラウザもよろしく;; http://owa.as.wakwak.ne.jp/zope/coreblog/196
385 shu #f0c10dc 2007/09/16 00:23 prob:0.0%
その通りです。流石、話が早い^^ 辿り来て今だ山麓ですが、ライブラリ(ツール)として使えるものを目指してます。 モデルとしては別のアイディアもありそうですが、その場合の検証ツールとしても使えますので。 とりあえず書籍や他人のコードは見ないで作って升。 本当に面白いところは大局観をコード?で表現するところですので、そこで愉しみましょう。 やはり「着眼大局、着手小局」の言葉は有効な指針だと思います。 ポンちゃんはもう基本ライブラリの作成は済んでることと思いますので、 こちらが公開したら、いろいろ指摘してくれると有難く思います。 オープンソースな将棋ライブラリサイトを作っても良いかと思っています。 と思ったら既にありますね http://www.google.co.jp/search?hl=ja&q=%E5%B0%86%E6%A3%8B%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&btnG=%E6%A4%9C%E7%B4%A2&lr=
384 pon #c1161e8 2007/09/15 23:16 prob:0.0%
>月並みですが CMovesRule というクラス名 移動に関する低レベルロジックを静的なクラスにすべて入れ込む訳ですね。 そして駒や盤、駒台はモデル(データのみ)のオブジェクトにする。 また、次の一手などの高級な思考ロジックも静的なクラスにする。 ただし、思考クラスでは永続化されたデータソースをバインドすることに より、思考が成長することを可能にする。 結局はこの形になるのでしょうか?
383 shu #f0c10dc 2007/09/13 23:36 prob:0.0%
1) 機能通りに移動 - の基本クラスを作成中 テストとして駒数 4 個で総可能手 17 通り程のデータで時間を計測してみました。 1,000,000 回繰返して約 0.75 秒。オプティマイズ (gcc -O3) かけても 0.2 秒くらい。 果たしてこれで "300,000局面/秒" 以上読めるソフトができるのでしょうか...? 駒クラス CPiece は後々コピーして使用するのでなるべく小さく作ろうとしています。 データは駒の種類と位置だけなので現状のインスタンスサイズは 2 バイトだけど。 試しにこれを仮想クラスにしてみると、それだけで 16 バイトになってしまう。スゲー;; C だと多分テーブルや #define の嵐になります。一方 C++ は便利だけどリソースを浪費しがち。 なんやかんや、やっぱり C/C++ は面白い^^
382 shu #f0c10dc 2007/09/12 15:23 prob:0.0%
月並みですが CMovesRule というクラス名になっております^^ とりあえず条件 1)2)3)4) を実装する予定です。 彼の方は先ほど辞意を表明なされたようですが、 私は続けるつもりですのでご心配なさらずに居てください(笑 ロジックのみだと 1000 行くらいで済むと思うので、 ソースは完成したらご覧頂ければ幸いです。may be comming soon (;-p
381 pon #954c287 2007/09/12 13:00 prob:0.0%
getMoves:: を実装するクラスを教えてください^^