Kyokumen::Kyokumen(int tesu,KomaInf board[9][9],int Motigoma[])

「Kyokumen::Kyokumen(int tesu,KomaInf board[9][9],int Motigoma[])」の編集履歴(バックアップ)一覧はこちら

Kyokumen::Kyokumen(int tesu,KomaInf board[9][9],int Motigoma[])」(2009/03/02 (月) 00:35:20) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

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

表示オプション

横に並べて表示:
変化行の前後のみ表示: