象歩将棋
Webと将棋で何か具体的なもの作って行こうとしてます。
このまま記事を入力し[投稿する]ボタンを押せば当サイトに送信されます。
以下の文章は注意書きです。
名前はかならず記入してください。ハンドルネームでも構いません。
またパスワードを入力することをお勧めします。
その場合他人による *なりすまし* と区別出来るかもしれません。
さらにブラウザでクッキーを有効に設定してある場合あなたの記事は後で修正可能になります。
コメントスパム防止のため記事の内容を機械的にモデレート
(スパムである確率を計算)
する処理を通します。
どのような投稿であれ、たまたま計算誤差によりスパムとみなされ
秘密の場所
に収納される可能性があります。
その場合、管理人が手作業で正規の場所に移動しますのでお待ちください。
-
441
shu
2008/03/29 22:59
id: 3BVR6NRi4pQ
prob: 1.7%
-
-
空き王手
手の抽出はビット演算を利用するとロジックがとても簡単になる。
実装したところパラレルワールドなのでループ制御文がほとんど無い。
今夜あたりツリー探索を作れば、うんと速い詰将棋マシンができるだろう^^
と思ったところで、また悪魔の囁きが聞こえてきた。
やはり抽象的なモデルが必要なのではないのかな。
心の中で誰かがそう叫んでる。でんでん;;
いろんな見方を得たい時にはなるべくシンプルなモデルの方が便利。
それはまたクロスでデバッグやテストするにも都合が良いのだ。
-
440
shu
2008/03/28 22:41
id: 3BVR6NRi4pQ
prob: 0.1%
-
-
後手番
まだツリー探索すら考えて無くて、今は地道に手の抽出処理をしてます。
図は▲6四角の局面
後手番で△4二歩打、△5三歩打、または△4二金を抽出できました。
盤面以下むりやり △4二金、▲4一銀成と進め、
その局面で探索すると無事に △4一銀のみ抽出できました。
もしかして空き王手関連はうまく処理できてるのかもしれません。
後手番の処理は以前 (PyZumeのころ) は先手の処理より一桁多くなっていましたが、
今回は先手の倍くらいですみそうな気がしてます。
-
439
shu
2008/03/24 23:49
id: 3BVR6NRi4pQ
prob: 6.0%
-
-
空き王手の処理完了
現在2500行、次は後手番。
葛湯溶いてるみたい。始め粘って、あとはさらさら。
-
438
shu
2008/03/22 22:13
id: 3BVR6NRi4pQ
prob: 6.3%
-
-
脳内実験は終了
空き王手の目途はついたと思う。単純木探査でたぶん3800行、100万手/秒くらい。
不思議と云うか自然なのか解らんけど、副作用で後手番の問題も解けたみたい。
二歩、打ち歩詰、無駄な合駒、千日手などは後付け。
メモもとって無いので明日が怖い。
-
437
shu
2008/03/20 21:30
id: 3BVR6NRi4pQ
prob: 19.1%
-
-
> 答えがでていると
もう答えは出ているかもしれませんね。
今回は単純なプログラミング技術のみ追求しています。
仕様は決まっているのに、うまいコードが描けない。
そこにこだわりたくなるのがプログラマだと思います。
まあドンキーなのはバレているのでしょうが;;
-
436
PON
2008/03/19 00:41
id: gCW6ghh5gPQ
prob: 62.3%
-
-
>435
答えがでていると物事を鵜呑みにする人で
幸せになれた人はいません。
-
435
pon
2008/03/19 00:37
id: 480oHczCgMM
prob: 5.0%
-
-
>すべてビット演算でまかなおう
=数式で近似しよう
≒数式を勉強し直そう
=線形代数を勉強し直そう
>寿命=呑み直そう^^
知りあいに、5手詰めの切り抜きを机の額に飾っていた人がいました。
どうしてそんな一目の詰め将棋を飾っているのか、最初はどうしても
意味がわからなかったのですが、
今から思うと、将棋を知らない人がどう思うかを重視していたようにも
思えます。
人生楽しんだ方が得ですね。
-
434
shu
2008/03/17 23:51
id: 3BVR6NRi4pQ
prob: 1.5%
-
-
> やっぱり先は長い
そうでも無いかも
手を抽出する処理過程に条件クラスを追加しました。リファクタリングしただけとも云う;;
1) ルール上合法な手に制限する
2) 王手のみ選択する
3) 王手を解除する手のみ選択する
などを条件クラス化。ただし(3)は今は形だけ。
シンプルになったので、思いついた時に作業できます。
手の意味についてはペンディング。
-
433
shu
2008/03/16 00:46
id: 3BVR6NRi4pQ
prob: 2.0%
-
-
やっぱり先は長い
すべてビット演算でまかなおうと思ったけど、一般化すると組み合わせ数学的になる。
詰将棋で先手の場合、詰め手の抽出とかいう俺的な検索すれば良い。
ところが後手の立場だとどの駒が効いてるの? とか一から評価しないといけない。
手の意味を付加すべきだろうか?
-
432
shu
2008/03/11 21:19
id: 3BVR6NRi4pQ
prob: 0.0%
-
-
コツコツとした良い感じ
着実にソリッドなコードが生産されてく感覚。
駒を動かすルールはC128クラスで実装。
平手戦の一局面の実測値は30万手抽出/1秒。遅いな;;
ルールは静的に持ち、駒クラスの関数が有効手のビット列を返却する。
現在 2,200 行くらいアスファルトに刻む。あぁ
詰めの条件付与もビット処理でおこなう予定。
それで単純ツリー探索は実現するはず。
そこまででライブラリとして最低必要な機能は実装される。ふぅ
|