しょうぎせいさく日記
第壱次政策
2002/12/12
まずは、駒番号の設計から。。。
これはかなり重要だ。
条件としては
*255以下の数字
*成、敵味方 の表現を加算減算やビット演算等で表したい。
そうすれば 高速化やメモリーの軽減につながる。
で、結局駒番号は以下の通りにあらわすことにした。
PL1 | 王 | 飛 | 角 | 金 | 銀 | 桂 | 香 | 歩 |
生 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
成 | - | 9 | 10 | - | 12 | 13 | 14 | 15 |
PL2 | 王 | 飛 | 角 | 金 | 銀 | 桂 | 香 | 歩 |
生 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
成 | - | 41 | 42 | - | 44 | 45 | 46 | 47 |
壁:64
空:128
はぁ 出来た。。。
え?壁なんて駒はないって?
これは局面の外側に壁を配置することによって
高速化を計る良くある方法です。
え?駒番号の間に隙間が多くて無駄が多いって?
隙間だらけの設計の理由は
(駒-1)&60=12:
(13:圭PL1 & 14:杏PL1 & 15:とPL1)の駒を指す
とかの数式で駒のグループを数式で表せるから。
続きは また今度。。。
第弐次政策
2002/12/19
盤と持ち駒の座標は下のようにした。
色の付いてるところは壁。
持ち駒の座標の方の「手」という駒は、
パスした時に 取る駒という事にしました。
それにしても、最近 風邪で頭が痛い。。。
困った 困った。
第参次政策
2003/1/9
とりあえず画面の作成
うーん。。。
Cは慣れてないので 作業がはかどらない。
何とかならないものかな。
第四次政策
2003/2/2
駒の効き関数と指し手の生成関数
駒の効き情報の方が少し前に出来ていたので
それをいじって指し手の生成を作ると手間が省けたので楽だった。
駒の効き関数で、どういう効き情報を作るかによって
評価関数に及ぼす影響は大きいし、処理時間も重要だ。
いつまで考えてても仕方がないので、
「りすかす」で比較的成功した方法を取った。
香、角、飛 などのとび駒は
飛車や香が並んでいる時に、突き抜けるようにした。
それから、とび駒の効きを遮る駒が敵王のときも突き抜けるようにした。
また、とび駒の効きを遮る駒が
見方の駒で順に効きがある時に、一マスだけ突き抜けるようにした。
下の図が例
試しに、駒の効き関数の処理時間を計ってみた。
結果、「りすかす-参」3倍近くに算出速度が上がってる(わぁー
(「りすかす-参」は、めんどくさいので公開してない)
去年の大会のバージョンと比べたら、10倍以上処理速度が上がった気がする。
(去年のは計ってないから、わからないけど)
次は駒価値算出関数を完成させたいなぁ。
TOP
[★高収入が可能!WEBデザインのプロになってみない?!
自宅で仕事がしたい人必見!
]
[ CGIレンタルサービス | 100MBの無料HPスペース | 検索エンジン登録代行サービス ]
[ 初心者でも安心なレンタルサーバー。50MBで250円から。CGI・SSI・PHPが使えます。 ]