8static_assert(
sizeof(
osl::HashKey) ==
sizeof(int)*4,
"hash key size");
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) {
54 for(
int num=0;num<40;num++){
126#include "bits/hash.txt"
PtypeO ptypeO() const
移動後のPtype, i.e., 成る手だった場合成った後
PtypeO oldPtypeO() const
移動前のPtypeO, i.e., 成る手だった場合成る前
Ptype capturePtype() const
const Square from() const
const Square square() const
const PieceMask & usedMask() const
const Piece pieceOf(int num) const
static const Square STAND()
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)
const PieceStand pieceStand() const
uint64_t operator[](size_t i) const
const BoardKey96 boardKey() const
const HashKey newMakeMove(Move) const
const HashKey newHashWithMove(Move move) const
void dumpContentsCerr() const
void dumpContents(std::ostream &os) const
const HashKey newUnmakeMove(Move) const
std::ostream & operator<<(std::ostream &os, const HashKey &h)
CArray< CArray< T, Capacity2 >, Capacity1 > CArray2d
PtypeO
Player + Ptype [-15, 15] PtypeO の O は Owner の O.
constexpr Player alt(Player player)
PtypeO newPtypeO(Player player, Ptype ptype)
PtypeO captured(PtypeO ptypeO)
unpromoteすると共に,ownerを反転する.
CArray< uint64_t, 19 *3 *3 > HashMajorPawn
CArray< uint64_t, 5 *5 *5 *5 > HashPiece