All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Static Public Member Functions | Static Protected Member Functions | Static Protected Attributes | Friends
osl::eval::ml::RookEffectBase Class Reference

#include <majorPiece.h>

Inheritance diagram for osl::eval::ml::RookEffectBase:
Inheritance graph
[legend]
Collaboration diagram for osl::eval::ml::RookEffectBase:
Collaboration graph
[legend]

List of all members.

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 157 of file majorPiece.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
ONE_DIM 
DIM 

Definition at line 161 of file majorPiece.h.


Member Function Documentation

MultiInt osl::eval::ml::RookEffectBase::eval ( const NumEffectState &  state) [static]
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 
) [inline, static, protected]
static int osl::eval::ml::RookEffectBase::index ( int  abs_x_diff,
int  y_diff,
bool  horizontal,
bool  is_promoted 
) [inline, static, protected]

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

Definition at line 179 of file majorPiece.h.

Referenced by index1(), and index2().

static int osl::eval::ml::RookEffectBase::index0 ( int  abs_x_diff,
int  y_diff,
PtypeO  ptypeO,
bool  horizontal,
bool  promoted 
) [inline, static, protected]

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

Definition at line 192 of file majorPiece.h.

References osl::PTYPEO_MIN.

static int osl::eval::ml::RookEffectBase::index1 ( Square  king,
Square  from,
PtypeO  ptypeO,
bool  isP 
) [inline, static, protected]

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

Definition at line 207 of file majorPiece.h.

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

Referenced by evalOne().

static int osl::eval::ml::RookEffectBase::index1 ( int  x_diff,
int  y_diff,
PtypeO  ptypeO,
bool  isP 
) [inline, static, protected]

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

Definition at line 221 of file majorPiece.h.

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

static int osl::eval::ml::RookEffectBase::index2 ( Square  king,
Square  from,
bool  isP 
) [inline, static, protected]

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

Definition at line 236 of file majorPiece.h.

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

Referenced by evalOne().

static int osl::eval::ml::RookEffectBase::index2 ( int  x_diff,
int  y_diff,
bool  isP 
) [inline, static, protected]

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

Definition at line 248 of file majorPiece.h.

References index().


Friends And Related Function Documentation

friend class RookEffectPiece [friend]

Definition at line 159 of file majorPiece.h.


Member Data Documentation

Definition at line 259 of file majorPiece.h.

Referenced by evalOne().

Definition at line 260 of file majorPiece.h.

Referenced by evalOne().

Definition at line 266 of file majorPiece.h.

Referenced by evalOne().

Definition at line 261 of file majorPiece.h.

Referenced by evalOne().

Definition at line 255 of file majorPiece.h.

Definition at line 258 of file majorPiece.h.

Referenced by evalOne().

Definition at line 263 of file majorPiece.h.

Referenced by evalOne().

Definition at line 264 of file majorPiece.h.

Referenced by evalOne().

Definition at line 267 of file majorPiece.h.

Referenced by evalOne().

Definition at line 265 of file majorPiece.h.

Referenced by evalOne().

Definition at line 256 of file majorPiece.h.

Definition at line 262 of file majorPiece.h.

Referenced by evalOne().

Definition at line 257 of file majorPiece.h.

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


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines