象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
投稿フォーム:
お名前: ニックネームでも何でもかまいません(必須)
パスワード: なりすまし防止のため利用できます(任意)
記事:
 
キャンセル
424 shu #f0c10dc 2008/02/21 00:13 prob:%
> ルール(ロジック)はどのクラスに実装されていますか 駒の動きは128ビットクラスで実装する。 驚くほどシンプルに実装できる。駒の機能は本質的にグラフィカルなためかな? 汎用駒クラスのインスタンスに関数ポインタを一個持たせるだけ。 ループとか条件分岐をあまり使わずに実装できそう。 > 思考エンジン以外はインターフェースを作れば、実装は誰が行っても速ければよい そう思います。2015年までには128ビットデータ処理マシンが誕生してると思うので、 そうなれば今の128ビットクラスは不要になり、性能も二桁くらい向上するかも。 IPv4 枯渇とか、暗号化問題とかあるので、そのからみでたぶん実現されると思ってますが?... > インターフェースが綺麗なら思考エンジンの作成がより楽 水平思考や垂直思考、私はどう考えたら良いか解りません。 とりあえず詰将棋やりながら考えてみます。 逆に序盤戦を考えるのが一つのヒントになるのかもしれません。
423 shu #f0c10dc 2008/02/15 22:08 prob:%
> ルール(ロジック)はどのクラスに実装されていますか 将棋盤でも駒クラスでもありません 盤と駒の配置を元に、次の手イテレータ CMovesIter を生成します。 CMovesIter は指手の駒単位に set を返すクラスです。 ルールは set の制約条件として実装するつもりです。 要はプログラム的に必要になった時点で判断するということですが、 "あとで指せる手はあとまわしにしましょう、という考え方" とかと妙に符合しておもしろい。 http://d.hatena.ne.jp/umedamochio/20080210 > インターフェースが綺麗なら思考エンジンの作成がより楽 小山に登ってみたら、まずその辺を見渡すのが良いのでしょう。 好みのインタープリタが欲しいなと少し思ってます。 追記: ルールへのポインタは駒クラスに置いてあります。
422 pon #d4c0f6f 2008/02/15 12:43 prob:%
>↓ C++で普通に9x9ボードクラスを作り、駒の移動はポインタで実装 ← 今ここ 抽象化の話しですが、駒の移動(移動可否の判断)はボードクラスが持つのでしょうか。 移動可否を判断するためには、ルールに判断を委譲することになります。 現在、ルール(ロジック)はどのクラスに実装されていますか。 恐らく、思考エンジン以外はインターフェースを作れば、実装は誰が行っても速ければよい ということになると思います。 インターフェースが綺麗なら思考エンジンの作成がより楽になるのでしょう。 思考エンジンこそ抽象化の出番なんでしょうが、扉が見えてきません。 半年ほどやってませんし、この先もなかなか・・・ 修ちゃんに期待してます。
421 shu #f0c10dc 2008/02/14 22:06 prob:%
駒の移動方法 ↓ Cで関数ポインタ使って、その場その場でいろいろ (煩雑で失敗作かも) ↓ Python で駒クラスを作り、そのオブジェクトにルールを持たせた (PyZume) ↓ Cで静的なテーブルにルールをすべて持たせた (まあ速い) ↓ Cでビットテーブルとビット演算で処理 (少し速い) ↓ C++で普通に9x9ボードクラスを作り、駒の移動はポインタで実装 ← 今ここ さて、いよいよ局面探索の「第一の扉」を開けそうです^^ 「扉の向こうに待ち受けるのは奇跡か、それとも破滅か!?」 ... なんて
420 shu #f0c10dc 2008/02/14 21:25 prob:%
第33期棋王戦サイト 棋譜ブラウザで見られました。感謝^^ http://www.kyoto-np.co.jp/shogi2008/kiousen33-1.kif 107手目▲23飛成で佐藤の玉が詰んでるように見えたんだけど、 ▽22角で逆王手でした;;
419 shu #f0c10dc 2008/02/13 23:00 prob:%
>たった千行に 小高い丘に立って見ましょう そこに私は居ません;; まず PyZume に rush かけてます。 Do not stand at my codes and weep. ところで第33期棋王戦サイト http://www.kyoto-np.co.jp/shogi2008/ Java と JavaScript 併用なので見られません。 ラッシュ佐藤と羽生、観戦出来ないのは残念。
418 pon #d4c0f6f 2008/02/13 12:34 prob:%
>たった 1000 行に 暴露本は1000 行に1日 純文学は1000 行に100日 プロ棋士は1手に3時間 ・・・ 考える範囲が広がっているだけではないでしょうか?
417 shu #f0c10dc 2008/02/12 23:25 prob:%
たった 1000 行に いったい何日かかるんだろう。 昔は一週間に何千行も平気だったのに;;
416 shu #f0c10dc 2008/02/11 22:38 prob:%
抽象化って? 確かに勝手に夢想してる時は楽しいのですが。 具体的な考えも定まらないのに抽象化を考えるのは、ほとんどの場合意味の無いことです。 思い付きがいくらあっても足場を作らないと先には進めません。 そういえばこの前、空を見て歩いていたら、足を痛めてしまいました。 反省して、まずは小さな山に登ろうと思います。 振り返ってみると、詰将棋プログラム PyZume が GUI 付きでそれなりに動いてます。 ロジックは未完成で、コアなコードを見ると python で 1159 行でした。 これを C++ で置き換えて、とりあえず納得できるコードにしようと思います。 スパイラルって最近はネガティブフィードバック的な使われ方が多い気がするけど、 本来は自然界にある普遍的な成長曲線の一種です。よね;;
415 pon #795eec8 2008/02/02 17:06 prob:%
>ビット演算止めた >やっぱり抽象化しないと面白くない。 ですよね~^^