Static Public メソッド | |
template<Player P> | |
static void | findEffectPieces (const NumEffectState &state, Position effect_to, PtypeOPositionVector &my_pieces, PtypeOPositionVector &op_pieces) |
effectTo に利きのある駒を全て集める | |
template<Player P> | |
static void | findEffectPiecesAfterMove (const NumEffectState &state, Move move, PtypeOPositionVector &my_pieces, PtypeOPositionVector &op_pieces) |
move 後に move.to() に利きのある駒を全て集める | |
template<Player P> | |
static int | computeValue (Position target, PtypeO ptypeO, const PtypeOPositionVector &my_pieces, const PtypeOPositionVector &op_pieces) |
PtypeOPositionVector をもとに取り返し値を計算する. |
pieceEval.tcc の 62 行で定義されています。
static int osl::eval::TakeBackValue::computeValue | ( | Position | target, | |
PtypeO | ptypeO, | |||
const PtypeOPositionVector & | my_pieces, | |||
const PtypeOPositionVector & | op_pieces | |||
) | [inline, static] |
PtypeOPositionVector をもとに取り返し値を計算する.
FIXME: 利きを延ばすコードを入れる前に PtypeOPositionVector を PtypeO,Position のベクタに変更する必要がある. computeDiffAfterMoveMulti などで駒を動かさずに, move 後の取り合いを考えている時に,piece.position() が必ずしも 取り合いのためのposition ではないため.
P | alt(P) からの取り返し | |
target | ここに関する取り返し | |
ptypeo | target にあると想定される駒 |
pieceEval.tcc の 147 行で定義されています。
参照先 osl::Position::canPromote(), osl::canPromote(), osl::eval::PtypeEvalTable::captureValue(), osl::eval::max(), osl::promote(), osl::eval::PtypeEvalTable::promoteValue(), と osl::eval::Ptype_Eval_Table.
static void osl::eval::TakeBackValue::findEffectPieces | ( | const NumEffectState & | state, | |
Position | effect_to, | |||
PtypeOPositionVector & | my_pieces, | |||
PtypeOPositionVector & | op_pieces | |||
) | [inline, static] |
effectTo に利きのある駒を全て集める
pieceEval.tcc の 66 行で定義されています。
static void osl::eval::TakeBackValue::findEffectPiecesAfterMove | ( | const NumEffectState & | state, | |
Move | move, | |||
PtypeOPositionVector & | my_pieces, | |||
PtypeOPositionVector & | op_pieces | |||
) | [inline, static] |
move 後に move.to() に利きのある駒を全て集める
この部分は effectの種類によっては高速に求まるかもしれない
offsetからshortを求める
knight moveは0にしたいが,Board_Tableには対応するものはない
pieceEval.tcc の 82 行で定義されています。
参照先 osl::Board_Table, osl::dirToMask(), osl::Move::from(), osl::BoardTable::getLongDirection(), osl::PtypeTable::getMoveMask(), osl::BoardTable::getShortOffsetNotKnight(), osl::Piece::isOnBoardByOwner(), osl::Piece::ptype(), osl::Ptype_Table, osl::Move::to(), と osl::Offset::zero().