19 :
std::pair<uint64_t,uint32_t>(src)
23 size_t size()
const {
return 2; }
24 uint64_t
operator[](
size_t i)
const {
return i ? first : second; }
97 board64 &= ~static_cast<uint64_t>(1);
111 size_t size()
const {
return 2; }
120 int major_pawn = stand.
get(
PAWN)*9
184 using hash::HashGenTable;
190 template <
typename T>
struct hash;
201 return h.signature();
void subAtmostOnePiece(PieceStand const &ps)
unsigned int getFlags() const
unsigned int get(Ptype type) const
void addAtmostOnePiece(PieceStand const &ps)
pieceStand同士の加算,減算.
unsigned int index() const
static const CArray2d< HashKey128Layout, Square::SIZE, PTYPEO_SIZE > key
static void subHashKey(HashKey &hk, Square sq, PtypeO ptypeo)
static void addHashKey(HashKey &hk, Square sq, PtypeO ptypeo)
手番を含んだ盤面の状態のハッシュ値を保持するためのクラス.
uint64_t boardKey64() const
bool isSameBoard(const HashKey128 &key) const
駒台の情報を除いて同じかどうか.
uint64_t signature() const
HashKey128 & operator-=(const HashKey128 &r)
const PieceStand blackStand() const
uint64_t hash64() const
持駒も含んだ64bitのハッシュ
static const StandHash Stand_Hash
void setPieceStand(const PieceStand &p)
HashKey128(const HashKey128Layout &src)
HashKey128(uint64_t h0, uint32_t h1, uint32_t s)
bool isPlayerOfTurn(Player p) const
const PieceStand pieceStand() const
uint64_t pieceStand64() const
HashKey128 & operator+=(const HashKey128 &r)
uint64_t operator[](size_t i) const
const BoardKey96 boardKey() const
static const HashKey readFromDump(std::istream &)
const HashKey newMakeMove(Move) const
static const HashKey readFromDump(const std::string &)
const HashKey newHashWithMove(Move move) const
void dumpContentsCerr() const
void dumpContents(std::ostream &os) const
const HashKey newUnmakeMove(Move) const
bool operator==(const HashKey128 &l, const HashKey128 &r)
bool operator<(const HashKey128 &l, const HashKey128 &r)
set等で使うためのみの不等号.
bool operator!=(const HashKey128 &l, const HashKey128 &r)
std::ostream & operator<<(std::ostream &os, const HashKey &h)
bool isValidPtypeO(int ptypeO)
constexpr int playerToIndex(Player player)
PtypeO
Player + Ptype [-15, 15] PtypeO の O は Owner の O.
uint32_t signature() const
uint64_t operator[](size_t i) const
BoardKey96(const std::pair< uint64_t, uint32_t > &src)
CArray< uint64_t, 19 *3 *3 > HashMajorPawn
CArray< uint64_t, 5 *5 *5 *5 > HashPiece
uint64_t toUint64(PieceStand stand) const
unsigned long operator()(const osl::BoardKey &h) const
unsigned long operator()(const osl::HashKey &h) const