All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Classes | Public Member Functions | Static Public Attributes | Friends | List of all members
osl::hash::HashKey128 Class Reference

手番を含んだ盤面の状態のハッシュ値を保持するためのクラス. More...

#include <boardKey128.h>

Inheritance diagram for osl::hash::HashKey128:
Inheritance graph
[legend]
Collaboration diagram for osl::hash::HashKey128:
Collaboration graph
[legend]

Classes

struct  StandHash
 

Public Member Functions

 HashKey128 ()
 
 HashKey128 (uint64_t h0, uint32_t h1, uint32_t s)
 
 HashKey128 (const HashKey128Layout &src)
 
const BoardKey96 boardKey () const
 
uint64_t boardKey64 () const
 
uint64_t signature () const
 
uint64_t hash64 () const
 持駒も含んだ64bitのハッシュ More...
 
uint64_t pieceStand64 () const
 
const PieceStand pieceStand () const
 
const PieceStand blackStand () const
 
void setPieceStand (const PieceStand &p)
 
bool isSameBoard (const HashKey128 &key) const
 駒台の情報を除いて同じかどうか. More...
 
HashKey128operator+= (const HashKey128 &r)
 
HashKey128operator-= (const HashKey128 &r)
 
void add (Move move)
 
void changeTurn ()
 
void setPlayer (Player p)
 
bool playerBit () const
 
bool isPlayerOfTurn (Player p) const
 
Player turn () const
 
void setRandom ()
 乱数で初期化. More...
 
size_t size () const
 
uint64_t operator[] (size_t i) const
 

Static Public Attributes

static const StandHash Stand_Hash
 

Friends

class HashGenTable
 

Additional Inherited Members

- Private Attributes inherited from osl::hash::HashKey128Layout
uint64_t board64
 
uint32_t board32
 
uint32_t piece_stand
 

Detailed Description

手番を含んだ盤面の状態のハッシュ値を保持するためのクラス.

Board 96bit + 駒台(piece stand) 32bit

Definition at line 36 of file boardKey128.h.

Constructor & Destructor Documentation

osl::hash::HashKey128::HashKey128 ( )
inline
osl::hash::HashKey128::HashKey128 ( uint64_t  h0,
uint32_t  h1,
uint32_t  s 
)
inline
osl::hash::HashKey128::HashKey128 ( const HashKey128Layout src)
inline

Definition at line 50 of file boardKey128.h.

Member Function Documentation

void osl::hash::HashKey128::add ( Move  move)
inline

Definition at line 93 of file boardKey128.h.

References osl::hash::HashKey128Layout::board64, and osl::Move::intValue().

const PieceStand osl::hash::HashKey128::blackStand ( ) const
inline

Definition at line 64 of file boardKey128.h.

References osl::hash::HashKey128Layout::piece_stand.

const BoardKey96 osl::hash::HashKey128::boardKey ( ) const
inline
uint64_t osl::hash::HashKey128::boardKey64 ( ) const
inline

Definition at line 56 of file boardKey128.h.

References osl::hash::HashKey128Layout::board64.

void osl::hash::HashKey128::changeTurn ( )
inline
uint64_t osl::hash::HashKey128::hash64 ( ) const
inline

持駒も含んだ64bitのハッシュ

Definition at line 59 of file boardKey128.h.

References osl::hash::HashKey128Layout::board64, and pieceStand64().

bool osl::hash::HashKey128::isPlayerOfTurn ( Player  p) const
inline

Definition at line 101 of file boardKey128.h.

References playerBit(), and osl::playerToIndex().

Referenced by turn().

bool osl::hash::HashKey128::isSameBoard ( const HashKey128 key) const
inline

駒台の情報を除いて同じかどうか.

手番が異なるものは異なると定義する

Definition at line 71 of file boardKey128.h.

References boardKey().

HashKey128& osl::hash::HashKey128::operator+= ( const HashKey128 r)
inline
HashKey128& osl::hash::HashKey128::operator-= ( const HashKey128 r)
inline
uint64_t osl::hash::HashKey128::operator[] ( size_t  i) const
inline
const PieceStand osl::hash::HashKey128::pieceStand ( ) const
inline
uint64_t osl::hash::HashKey128::pieceStand64 ( ) const
inline

Definition at line 60 of file boardKey128.h.

References pieceStand(), Stand_Hash, and osl::hash::HashKey128::StandHash::toUint64().

Referenced by hash64().

bool osl::hash::HashKey128::playerBit ( ) const
inline

Definition at line 100 of file boardKey128.h.

References osl::hash::HashKey128Layout::board64.

Referenced by isPlayerOfTurn().

void osl::hash::HashKey128::setPieceStand ( const PieceStand p)
inline
void osl::hash::HashKey128::setPlayer ( Player  p)
inline

Definition at line 95 of file boardKey128.h.

References osl::hash::HashKey128Layout::board64, and osl::playerToIndex().

void osl::hash::HashKey128::setRandom ( )

乱数で初期化.

pieceStandには触らない

Definition at line 6 of file boardKey128.cc.

References osl::hash::HashKey128Layout::board32, and osl::hash::HashKey128Layout::board64.

uint64_t osl::hash::HashKey128::signature ( ) const
inline
size_t osl::hash::HashKey128::size ( ) const
inline
Player osl::hash::HashKey128::turn ( ) const
inline

Definition at line 105 of file boardKey128.h.

References osl::BLACK, isPlayerOfTurn(), and osl::WHITE.

Friends And Related Function Documentation

friend class HashGenTable
friend

Definition at line 38 of file boardKey128.h.

Member Data Documentation

const hash::HashKey128::StandHash osl::hash::HashKey128::Stand_Hash
static

Definition at line 127 of file boardKey128.h.

Referenced by pieceStand64().


The documentation for this class was generated from the following files: