象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
投稿フォーム:
お名前: ニックネームでも何でもかまいません(必須)
パスワード: なりすまし防止のため利用できます(任意)
記事:
 
キャンセル
387 shu #f0c10dc 2007/09/21 00:14 prob:%
>383 駒クラス CPiece は後々コピーして使用するので 駒クラスは廃止 駒の特性を突き詰めると種類だけなので 3bit 相当のデータでしかない。 先手/後手や成りは場の属性と考えることにした。 たとえば駒のオブジェクトを 40 個用意してポインタを張ろうとか考えてたけど、 持ち駒になった場合には区別が無い。駒のインスタンス化は本質じゃ無い気がする。 やはり重要なのは場のコピー、インデクス変換、...の方だ
386 shu #f0c10dc 2007/09/19 23:10 prob:%
竜王戦の挑戦者は佐藤。 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:%
その通りです。流石、話が早い^^ 辿り来て今だ山麓ですが、ライブラリ(ツール)として使えるものを目指してます。 モデルとしては別のアイディアもありそうですが、その場合の検証ツールとしても使えますので。 とりあえず書籍や他人のコードは見ないで作って升。 本当に面白いところは大局観をコード?で表現するところですので、そこで愉しみましょう。 やはり「着眼大局、着手小局」の言葉は有効な指針だと思います。 ポンちゃんはもう基本ライブラリの作成は済んでることと思いますので、 こちらが公開したら、いろいろ指摘してくれると有難く思います。 オープンソースな将棋ライブラリサイトを作っても良いかと思っています。 と思ったら既にありますね 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:%
>月並みですが CMovesRule というクラス名 移動に関する低レベルロジックを静的なクラスにすべて入れ込む訳ですね。 そして駒や盤、駒台はモデル(データのみ)のオブジェクトにする。 また、次の一手などの高級な思考ロジックも静的なクラスにする。 ただし、思考クラスでは永続化されたデータソースをバインドすることに より、思考が成長することを可能にする。 結局はこの形になるのでしょうか?
383 shu #f0c10dc 2007/09/13 23:36 prob:%
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:%
月並みですが CMovesRule というクラス名になっております^^ とりあえず条件 1)2)3)4) を実装する予定です。 彼の方は先ほど辞意を表明なされたようですが、 私は続けるつもりですのでご心配なさらずに居てください(笑 ロジックのみだと 1000 行くらいで済むと思うので、 ソースは完成したらご覧頂ければ幸いです。may be comming soon (;-p
381 pon #954c287 2007/09/12 13:00 prob:%
getMoves:: を実装するクラスを教えてください^^
380 shu #f0c10dc 2007/09/11 00:25 prob:%
将棋のライブラリ作ります。おっ でも職責にはこだわりません。ははは; まずは可能な手を返すメソッドが必要なので、おさらいになりますが;; getMoves:: 任意局面でルール上可能な手の集合を返す 局面と手番はあらかじめ決まってるとする。 手とは自分の駒を移動すること(同時に成ることを含む)、または自分の持駒を打つこと。 可能な手の制約条件としては 1) 移動の場合は駒の機能通りに移動できる。もちろん将棋盤から落ちないこと。 2) 相手の駒がある位置に移動できる。味方の駒位置には移動禁止。桂馬は飛び越えて移動できる。 3) 手の結果その駒が次に(1)の条件で動けない場合は禁止。二歩は禁止。自玉が王手になる手は禁止。 4) 打ち歩詰めは禁止。 5) 手の結果が千日手になるものは禁止。 このくらいですかね。 今回は C/C++ で高速で堅固なルーチンを作ろうと思います。
379 shu #f0c10dc 2007/08/20 10:49 prob:%
USIプロトコルに対応した将棋GUIソフトが登場 http://shogi.typepad.jp/brainstorm/2007/08/usigui_1eb1.html 将棋GUIソフト「将棋所」のページ http://www.geocities.jp/shogidokoro/index.html 将棋ソフト用画像リソース置き場 http://mucho.girly.jp/bona/ Visual C++ 2005 Express Edition 日本語版 http://www.microsoft.com/japan/msdn/vstudio/express/visualc/
378 shu #f0c10dc 2007/08/16 23:57 prob:%
> PyZume もう二年経ちました http://owa.as.wakwak.ne.jp/zope/labs/bbs/300/244 > 流鏑馬一番(七手詰)は運よく 0.4 秒で解けました。 今、手元の x86_64 マシンで 0.2 秒くらいでした (^^; そろそろ往きますか。Φ