8static_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);
40 os << pieceStand().getFlags();
41 for (
size_t i=0; i<size(); ++i) {
42 os <<
' ' << operator[](i);
48 dumpContents(std::cerr);
54 for(
int num=0;num<40;num++){
59 setPlayer(state.
turn());
65 return newMakeMove(move);
125 hash::HashGenTable::key = {
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 void subHashKey(HashKey &hk, Square sq, PtypeO ptypeo)
static void addHashKey(HashKey &hk, Square sq, PtypeO ptypeo)
const PieceStand pieceStand() 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)
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を反転する.