My Project
Public Types | Static Public Member Functions | Static Protected Member Functions | Static Protected Attributes | Friends | List of all members
osl::eval::ml::RookEffectBase Class Reference

#include <majorPiece.h>

Inheritance diagram for osl::eval::ml::RookEffectBase:
osl::eval::ml::RookEffect osl::eval::ml::RookEffectPieceKingRelative osl::eval::ml::RookPromoteDefense osl::eval::ml::RookPromoteDefenseRookH

Public Types

enum  { ONE_DIM = 612 , DIM = ONE_DIM * 2 }
 

Static Public Member Functions

static MultiInt eval (const NumEffectState &state)
 

Static Protected Member Functions

template<Player P>
static MultiInt evalOne (const NumEffectState &state, Square rook, Square myKing, Square opKing, Square up, Square dp, Square rp, Square lp, bool isP)
 
static int index (int abs_x_diff, int y_diff, bool horizontal, bool is_promoted)
 (abs_x_diff, y_diff) - 玉を原点とした時の空マスの相対位置 horizontal - 飛車の横利きがある場合 is_promoted - 竜の場合
 
static int index0 (int abs_x_diff, int y_diff, PtypeO ptypeO, bool horizontal, bool promoted)
 黒の飛車(竜)から利きのある駒 (abs_x_diff, y_diff) - 駒を基準にした玉の相対位置 abs_x_diffは絶対値 ptypeO - 駒のptypeO, 白からの場合は反転 horizontal - 飛車の横利きがある場合 is_promoted - 竜の場合
 
static int index1 (Square king, Square from, PtypeO ptypeO, bool isP)
 黒の飛車(竜)からの利きのある駒のindex {attack,defense}_{u,r,l,d} へのアクセスに使う from - 駒の位置 king - 玉の位置 ptypeO - 駒の種類,白からの利きの場合は反転. (BLACK,PTYPE_EDGE)もあり得る isP - 竜の場合
 
static int index1 (int x_diff, int y_diff, PtypeO ptypeO, bool isP)
 黒の飛車(竜)からの利きのある駒のindex {attack,defense}_{u,r,l,d} へのアクセスに使う (x_diff, y_diff) - 玉を基準に見た駒の相対位置 ptypeO - 駒の種類,白からの利きの場合は反転. (BLACK,PTYPE_EDGE)もあり得る isP - 竜の場合
 
static int index2 (Square king, Square from, bool isP)
 黒の飛車(竜)がある場所は空マスでないのでその分を補正するテーブル {attack,defense}_nospace へのアクセス king - 玉の位置 from - 飛車(竜)の位置 isP - 竜の場合
 
static int index2 (int x_diff, int y_diff, bool isP)
 黒の飛車(竜)がある場所は空マスでないのでその分を補正するテーブル {attack,defense}_nospace へのアクセス (x_diff, y_diff) - 玉を基準にしてみた飛車(竜)の相対位置 isP - 竜の場合
 

Static Protected Attributes

static CArray< MultiInt, 612 > attack_table
 
static CArray< MultiInt, 612 > defense_table
 
static CArray< MultiInt, 32 > piece_table
 
static CArray< MultiInt, 23104 > attack_u
 
static CArray< MultiInt, 23104 > attack_d
 
static CArray< MultiInt, 23104 > attack_l
 
static CArray< MultiInt, 23104 > attack_r
 
static CArray< MultiInt, 23104 > defense_u
 
static CArray< MultiInt, 23104 > defense_d
 
static CArray< MultiInt, 23104 > defense_l
 
static CArray< MultiInt, 23104 > defense_r
 
static CArray< MultiInt, 722 > attack_nospace
 
static CArray< MultiInt, 722 > defense_nospace
 

Friends

class RookEffectPiece
 

Detailed Description

Definition at line 155 of file majorPiece.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
ONE_DIM 
DIM 

Definition at line 159 of file majorPiece.h.

Member Function Documentation

◆ eval()

MultiInt osl::eval::ml::RookEffectBase::eval ( const NumEffectState state)
static

◆ evalOne()

template<osl::Player P>
MultiInt osl::eval::ml::RookEffectBase::evalOne ( const NumEffectState state,
Square  rook,
Square  myKing,
Square  opKing,
Square  up,
Square  dp,
Square  rp,
Square  lp,
bool  isP 
)
inlinestaticprotected

◆ index()

static int osl::eval::ml::RookEffectBase::index ( int  abs_x_diff,
int  y_diff,
bool  horizontal,
bool  is_promoted 
)
inlinestaticprotected

(abs_x_diff, y_diff) - 玉を原点とした時の空マスの相対位置 horizontal - 飛車の横利きがある場合 is_promoted - 竜の場合

Definition at line 177 of file majorPiece.h.

Referenced by index1(), and index2().

◆ index0()

static int osl::eval::ml::RookEffectBase::index0 ( int  abs_x_diff,
int  y_diff,
PtypeO  ptypeO,
bool  horizontal,
bool  promoted 
)
inlinestaticprotected

黒の飛車(竜)から利きのある駒 (abs_x_diff, y_diff) - 駒を基準にした玉の相対位置 abs_x_diffは絶対値 ptypeO - 駒のptypeO, 白からの場合は反転 horizontal - 飛車の横利きがある場合 is_promoted - 竜の場合

Definition at line 190 of file majorPiece.h.

References osl::PTYPEO_MIN.

◆ index1() [1/2]

static int osl::eval::ml::RookEffectBase::index1 ( int  x_diff,
int  y_diff,
PtypeO  ptypeO,
bool  isP 
)
inlinestaticprotected

黒の飛車(竜)からの利きのある駒のindex {attack,defense}_{u,r,l,d} へのアクセスに使う (x_diff, y_diff) - 玉を基準に見た駒の相対位置 ptypeO - 駒の種類,白からの利きの場合は反転. (BLACK,PTYPE_EDGE)もあり得る isP - 竜の場合

Definition at line 219 of file majorPiece.h.

References osl::getPtype(), index(), osl::PTYPE_EMPTY, and osl::PTYPEO_MIN.

◆ index1() [2/2]

static int osl::eval::ml::RookEffectBase::index1 ( Square  king,
Square  from,
PtypeO  ptypeO,
bool  isP 
)
inlinestaticprotected

黒の飛車(竜)からの利きのある駒のindex {attack,defense}_{u,r,l,d} へのアクセスに使う from - 駒の位置 king - 玉の位置 ptypeO - 駒の種類,白からの利きの場合は反転. (BLACK,PTYPE_EDGE)もあり得る isP - 竜の場合

Definition at line 205 of file majorPiece.h.

References index1(), osl::Square::x(), and osl::Square::y().

Referenced by evalOne(), and index1().

◆ index2() [1/2]

static int osl::eval::ml::RookEffectBase::index2 ( int  x_diff,
int  y_diff,
bool  isP 
)
inlinestaticprotected

黒の飛車(竜)がある場所は空マスでないのでその分を補正するテーブル {attack,defense}_nospace へのアクセス (x_diff, y_diff) - 玉を基準にしてみた飛車(竜)の相対位置 isP - 竜の場合

Definition at line 246 of file majorPiece.h.

References index().

◆ index2() [2/2]

static int osl::eval::ml::RookEffectBase::index2 ( Square  king,
Square  from,
bool  isP 
)
inlinestaticprotected

黒の飛車(竜)がある場所は空マスでないのでその分を補正するテーブル {attack,defense}_nospace へのアクセス king - 玉の位置 from - 飛車(竜)の位置 isP - 竜の場合

Definition at line 234 of file majorPiece.h.

References index2(), osl::Square::x(), and osl::Square::y().

Referenced by evalOne(), and index2().

Friends And Related Symbol Documentation

◆ RookEffectPiece

friend class RookEffectPiece
friend

Definition at line 157 of file majorPiece.h.

Member Data Documentation

◆ attack_d

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::attack_d
staticprotected

Definition at line 257 of file majorPiece.h.

Referenced by evalOne().

◆ attack_l

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::attack_l
staticprotected

Definition at line 258 of file majorPiece.h.

Referenced by evalOne().

◆ attack_nospace

osl::CArray< MultiInt, 722 > osl::eval::ml::RookEffectBase::attack_nospace
staticprotected

Definition at line 264 of file majorPiece.h.

Referenced by evalOne().

◆ attack_r

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::attack_r
staticprotected

Definition at line 259 of file majorPiece.h.

Referenced by evalOne().

◆ attack_table

osl::CArray< MultiInt, 612 > osl::eval::ml::RookEffectBase::attack_table
staticprotected

Definition at line 253 of file majorPiece.h.

◆ attack_u

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::attack_u
staticprotected

Definition at line 256 of file majorPiece.h.

Referenced by evalOne().

◆ defense_d

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::defense_d
staticprotected

Definition at line 261 of file majorPiece.h.

Referenced by evalOne().

◆ defense_l

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::defense_l
staticprotected

Definition at line 262 of file majorPiece.h.

Referenced by evalOne().

◆ defense_nospace

osl::CArray< MultiInt, 722 > osl::eval::ml::RookEffectBase::defense_nospace
staticprotected

Definition at line 265 of file majorPiece.h.

Referenced by evalOne().

◆ defense_r

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::defense_r
staticprotected

Definition at line 263 of file majorPiece.h.

Referenced by evalOne().

◆ defense_table

osl::CArray< MultiInt, 612 > osl::eval::ml::RookEffectBase::defense_table
staticprotected

Definition at line 254 of file majorPiece.h.

◆ defense_u

osl::CArray< MultiInt, 23104 > osl::eval::ml::RookEffectBase::defense_u
staticprotected

Definition at line 260 of file majorPiece.h.

Referenced by evalOne().

◆ piece_table

osl::CArray< MultiInt, 32 > osl::eval::ml::RookEffectBase::piece_table
staticprotected

Definition at line 255 of file majorPiece.h.

Referenced by osl::eval::ml::RookEffectPiece::setUp().


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