Kyokumen::Kyokumen(int tesu,KomaInf board[9][9],int Motigoma[])
概要
引数
実装
-
盤面および盤面パディングを壁で埋める
-
盤面パディングは桂馬の聴き用(とコメントにあるが後で確認)
-
ループ(全位置)
-
引数boardからbanを生成
-
boardは二次元配列で、棋譜と同じインデクシング
-
banのインデックスは一次元配列で、段の中の並びが棋譜と左右が逆
-
(なんでわざわざ逆にしたのか)
-
局面ハッシュ値の更新
-
自玉、敵玉の位置を記憶
-
駒の価値を積算
-
ループ(駒種類)
-
MotigomaからHandを生成
-
持ち駒の価値を積算
-
価値はHandValue[種類]*数
-
ループ(その駒種類の持ち駒の数)
-
→持ち駒ハッシュ値の更新
-
局面ハッシュ値と持ち駒ハッシュ値からハッシュ値を計算
-
(局面ハッシュ値という名前だが、盤面ハッシュもしくは盤上ハッシュと呼びたい)
-
履歴初期化
-
Tesuより前の履歴を0で初期化
-
HashHistory[Tesu]=HashVal;
-
OuteHistory[Tesu]=((Tesu%2)==0)?controlS[kingE]:controlE[kingS];
-
InitControl();
呼出元
最終更新:2009年03月02日 00:35