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

ドキュメント 象歩 Web瓦版
 BBSボード RDF
こんにちは (23)
おためし板 (321)
質問箱 (94)
テスト (30)
You散歩 (4)
建築 DIY (6)
MTB (32)
(9)
節電対策 (2)
このサイトに関する話 (185)
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)
 スパム
逮捕しる (19)
スパムお溜り (36)
ごみ箱 (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 49
424  shu  2008/02/21 00:13 id: 3BVR6NRi4pQ  prob: 0.2%
> ルール(ロジック)はどのクラスに実装されていますか
駒の動きは128ビットクラスで実装する。
驚くほどシンプルに実装できる。駒の機能は本質的にグラフィカルなためかな?
汎用駒クラスのインスタンスに関数ポインタを一個持たせるだけ。
ループとか条件分岐をあまり使わずに実装できそう。

> 思考エンジン以外はインターフェースを作れば、実装は誰が行っても速ければよい 
そう思います。2015年までには128ビットデータ処理マシンが誕生してると思うので、
そうなれば今の128ビットクラスは不要になり、性能も二桁くらい向上するかも。
IPv4 枯渇とか、暗号化問題とかあるので、そのからみでたぶん実現されると思ってますが?...

> インターフェースが綺麗なら思考エンジンの作成がより楽
水平思考や垂直思考、私はどう考えたら良いか解りません。
とりあえず詰将棋やりながら考えてみます。
逆に序盤戦を考えるのが一つのヒントになるのかもしれません。
423  shu  2008/02/15 22:08 id: 3BVR6NRi4pQ  prob: 0.0%
> ルール(ロジック)はどのクラスに実装されていますか
将棋盤でも駒クラスでもありません
盤と駒の配置を元に、次の手イテレータ CMovesIter を生成します。
CMovesIter は指手の駒単位に set を返すクラスです。
ルールは set の制約条件として実装するつもりです。

要はプログラム的に必要になった時点で判断するということですが、
"あとで指せる手はあとまわしにしましょう、という考え方"
とかと妙に符合しておもしろい。
http://d.hatena.ne.jp/umedamochio/20080210

> インターフェースが綺麗なら思考エンジンの作成がより楽
小山に登ってみたら、まずその辺を見渡すのが良いのでしょう。
好みのインタープリタが欲しいなと少し思ってます。

追記:
ルールへのポインタは駒クラスに置いてあります。
422  pon  2008/02/15 12:43 id: MRpLEZxwiS.  prob: 0.6%
>↓ C++で普通に9x9ボードクラスを作り、駒の移動はポインタで実装 ← 今ここ
抽象化の話しですが、駒の移動(移動可否の判断)はボードクラスが持つのでしょうか。
移動可否を判断するためには、ルールに判断を委譲することになります。
現在、ルール(ロジック)はどのクラスに実装されていますか。

恐らく、思考エンジン以外はインターフェースを作れば、実装は誰が行っても速ければよい
ということになると思います。
インターフェースが綺麗なら思考エンジンの作成がより楽になるのでしょう。
思考エンジンこそ抽象化の出番なんでしょうが、扉が見えてきません。
半年ほどやってませんし、この先もなかなか・・・ 修ちゃんに期待してます。
421  shu  2008/02/14 22:06 id: 3BVR6NRi4pQ  prob: 0.1%
駒の移動方法
↓ Cで関数ポインタ使って、その場その場でいろいろ (煩雑で失敗作かも)
↓ Python で駒クラスを作り、そのオブジェクトにルールを持たせた (PyZume)
↓ Cで静的なテーブルにルールをすべて持たせた (まあ速い)
↓ Cでビットテーブルとビット演算で処理 (少し速い)
↓ C++で普通に9x9ボードクラスを作り、駒の移動はポインタで実装 ← 今ここ

さて、いよいよ局面探索の「第一の扉」を開けそうです^^
「扉の向こうに待ち受けるのは奇跡か、それとも破滅か!?」 ... なんて
420  shu  2008/02/14 21:25 id: 3BVR6NRi4pQ  prob: 4.6%
第33期棋王戦サイト
棋譜ブラウザで見られました。感謝^^
http://www.kyoto-np.co.jp/shogi2008/kiousen33-1.kif
107手目▲23飛成で佐藤の玉が詰んでるように見えたんだけど、
▽22角で逆王手でした;;
419  shu  2008/02/13 23:00 id: 3BVR6NRi4pQ  prob: 1.7%
>たった千行に
小高い丘に立って見ましょう
そこに私は居ません;;
まず PyZume に rush かけてます。
Do not stand at my codes and weep.

ところで第33期棋王戦サイト
http://www.kyoto-np.co.jp/shogi2008/
Java と JavaScript 併用なので見られません。
ラッシュ佐藤と羽生、観戦出来ないのは残念。
418  pon  2008/02/13 12:34 id: MRpLEZxwiS.  prob: 3.0%
>たった 1000 行に
暴露本は1000 行に1日
純文学は1000 行に100日
プロ棋士は1手に3時間
・・・
考える範囲が広がっているだけではないでしょうか?
417  shu  2008/02/12 23:25 id: 3BVR6NRi4pQ  prob: 0.5%
たった 1000 行に
いったい何日かかるんだろう。
昔は一週間に何千行も平気だったのに;;
416  shu  2008/02/11 22:38 id: 3BVR6NRi4pQ  prob: 0.0%
抽象化って?
確かに勝手に夢想してる時は楽しいのですが。
具体的な考えも定まらないのに抽象化を考えるのは、ほとんどの場合意味の無いことです。
思い付きがいくらあっても足場を作らないと先には進めません。
そういえばこの前、空を見て歩いていたら、足を痛めてしまいました。

反省して、まずは小さな山に登ろうと思います。
振り返ってみると、詰将棋プログラム PyZume が GUI 付きでそれなりに動いてます。
ロジックは未完成で、コアなコードを見ると python で 1159 行でした。
これを C++ で置き換えて、とりあえず納得できるコードにしようと思います。

スパイラルって最近はネガティブフィードバック的な使われ方が多い気がするけど、
本来は自然界にある普遍的な成長曲線の一種です。よね;;
415  pon  2008/02/02 17:06 id: MRpLEZxwiS.  prob: 50.0%
>ビット演算止めた
>やっぱり抽象化しないと面白くない。
ですよね~^^
全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 49