8 static_assert(
sizeof(
osl::HashKey) ==
sizeof(
int)*4,
"hash key size");
18 for (uint64_t& value: HashMajorPawn)
20 for (uint64_t& value: HashPiece)
29 for (
size_t i=0; i<board_key.
size(); ++i)
32 << std::setfill(
'0') << std::setbase(16) << std::setw(8)
35 return os <<
':' << std::setbase(10);
41 for (
size_t i=0; i<
size(); ++i) {
48 dumpContents(std::cerr);
54 for(
int num=0;num<40;num++){
65 return newMakeMove(move);
126 #include "bits/hash.txt" uint64_t operator[](size_t i) const
const HashKey newMakeMove(Move) const
constexpr Player alt(Player player)
std::ostream & operator<<(std::ostream &os, const HashKey &h)
const BoardKey96 boardKey() const
PtypeO ptypeO() const
移動後のPtype, i.e., 成る手だった場合成った後
static const CArray2d< HashKey128Layout, Square::SIZE, PTYPEO_SIZE > key
PtypeO newPtypeO(Player player, Ptype ptype)
const Piece pieceOf(int num) const
void dumpContentsCerr() const
const PieceStand pieceStand() const
const Square from() const
unsigned int getFlags() const
static void addHashKey(HashKey &hk, Square sq, PtypeO ptypeo)
const Square square() const
Ptype capturePtype() const
const HashKey newHashWithMove(Move move) const
PtypeO
Player + Ptype [-15, 15] PtypeO の O は Owner の O.
const PieceMask & usedMask() const
PtypeO oldPtypeO() const
移動前のPtypeO, i.e., 成る手だった場合成る前
const HashKey newUnmakeMove(Move) const
PtypeO captured(PtypeO ptypeO)
unpromoteすると共に,ownerを反転する.
void dumpContents(std::ostream &os) const
static void subHashKey(HashKey &hk, Square sq, PtypeO ptypeo)
static const Square STAND()