mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-23 10:36:26 +08:00
More comment translation
including 11 files in /src
This commit is contained in:
112
src/evaluate.h
112
src/evaluate.h
@@ -38,39 +38,39 @@ void evaluate_with_no_return(const Position& pos);
|
||||
Value compute_eval(const Position& pos);
|
||||
|
||||
#if defined(EVAL_NNUE) || defined(EVAL_LEARN)
|
||||
// <EFBFBD>]<5D><><EFBFBD><EFBFBD><D690>t<EFBFBD>@<40>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>ǂݍ<C782><DD8D>ށB
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A"is_ready"<22>R<EFBFBD>}<7D><><EFBFBD>h<EFBFBD>̉<EFBFBD><CC89><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>Ăяo<D18F><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B2<42>x<EFBFBD>Ăяo<D18F><6F><EFBFBD><EFBFBD><EFBFBD>Ƃ͑z<CD91>肵<EFBFBD>Ă<EFBFBD><C482>Ȃ<EFBFBD><C882>B
|
||||
// (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AEvalDir(<28>]<5D><><EFBFBD><EFBFBD><D690>t<EFBFBD>H<EFBFBD><48><EFBFBD>_)<29><><EFBFBD>ύX<CF8D>ɂȂ<C982><C882><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƁAisready<64><79><EFBFBD>ēx<C493><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǂ݂Ȃ<DD82><C882><EFBFBD><EFBFBD>B)
|
||||
// Read the evaluation function file.
|
||||
// This is only called once in response to the "is_ready" command. It is not supposed to be called twice.
|
||||
// (However, if isready is sent again after EvalDir (evaluation function folder) has been changed, read it again.)
|
||||
void load_eval();
|
||||
|
||||
static uint64_t calc_check_sum() { return 0; }
|
||||
static uint64_t calc_check_sum() {return 0;}
|
||||
|
||||
static void print_softname(uint64_t check_sum) {}
|
||||
|
||||
// --- <EFBFBD>]<5D><><EFBFBD><EFBFBD><D690>Ŏg<C58E><67><EFBFBD>萔 KPP(<28>ʂƔC<C694><43>2<EFBFBD><32>)<29><>P<EFBFBD>ɑ<EFBFBD><C991><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>enum
|
||||
// --- enum corresponding to P of constant KPP (ball and arbitrary 2 pieces) used in evaluation function
|
||||
|
||||
// (<EFBFBD>]<5D><><EFBFBD><EFBFBD><D690>̎<EFBFBD><CC8E><EFBFBD><EFBFBD>̂Ƃ<CC82><C682>ɂ́ABonaPiece<63>͎<EFBFBD><CD8E>R<EFBFBD>ɒ<EFBFBD><C992>`<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂ł<CC82><C582><EFBFBD><EFBFBD>ł͒<C582><CD92>`<60><><EFBFBD>Ȃ<EFBFBD><C882>B)
|
||||
// (BonaPiece wants to define freely in experiment of evaluation function, so I don't define it here.)
|
||||
|
||||
|
||||
// Bonanza<EFBFBD><EFBFBD>KKP/KPP<50>ƌ<EFBFBD><C68C><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>P(Piece)<29><><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>B
|
||||
// <EFBFBD><EFBFBD> KPP<50><50><EFBFBD><EFBFBD><EFBFBD>߂<EFBFBD><DF82>Ƃ<EFBFBD><C682>ɁA39<33>̒n<CC92>_<EFBFBD>̕<EFBFBD><CC95>̂悤<CC82>ɁA<C981><41><EFBFBD>~<7E><><EFBFBD><EFBFBD><EFBFBD>ɑ<C991><CE82>Ĉ<EFBFBD><C488>ӂȔԍ<C894><D48D><EFBFBD><EFBFBD>K<EFBFBD>v<EFBFBD>ƂȂ<C682><C882>B
|
||||
// A type that represents P(Piece) when calling KKP/KPP in Bonanza.
|
||||
// When you ask for <20><> KPP, you need a unique number for each box <20>~ piece type, like the step at 39 points.
|
||||
enum BonaPiece : int32_t
|
||||
{
|
||||
// f = friend(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29>̈Ӗ<CC88><D396>Be = enemy(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29>̈Ӗ<CC88>
|
||||
// Meaning of f = friend (<28><>first move). Meaning of e = enemy (<28><>rear)
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎<EFBFBD><EFBFBD>̒l
|
||||
// Value when uninitialized
|
||||
BONA_PIECE_NOT_INIT = -1,
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȋ<EFBFBD><EFBFBD>B<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂Ƃ<EFBFBD><EFBFBD>Ȃǂ́A<EFBFBD>s<EFBFBD>v<EFBFBD>ȋ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ɉړ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// Invalid piece. When you drop a piece, move unnecessary pieces here.
|
||||
BONA_PIECE_ZERO = 0,
|
||||
|
||||
fe_hand_end = BONA_PIECE_ZERO + 1,
|
||||
|
||||
// Bonanza<7A>̂悤<CC82>ɔՏ<C994><D58F>̂<EFBFBD><CC82>肦<EFBFBD>Ȃ<EFBFBD><C882><EFBFBD><EFBFBD>̕<EFBFBD><CC95>⍁<EFBFBD>̔ԍ<CC94><D48D><EFBFBD><EFBFBD>l<EFBFBD>߂Ȃ<DF82><C882>B
|
||||
// <EFBFBD><EFBFBD><EFBFBD>R1) <20>w<EFBFBD>K<EFBFBD>̂Ƃ<CC82><C682>ɑ<EFBFBD><C991><EFBFBD>PP<50><50>1<EFBFBD>i<EFBFBD>ڂɍ<DA82><C98D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>āA<C481><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>ϊ<EFBFBD><CF8A>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>Đ<EFBFBD><C490><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><CC82><EFBFBD><EF82B5><EFBFBD>B
|
||||
// <EFBFBD><EFBFBD><EFBFBD>R2) <20>c<EFBFBD>^Bitboard<72><64><EFBFBD><EFBFBD>Square<72><65><EFBFBD><EFBFBD><EFBFBD>̕ϊ<CC95><CF8A>ɍ<EFBFBD><C98D><EFBFBD><EFBFBD>B
|
||||
// Don't pack the numbers of unrealistic walks and incense on the board like Bonanza.
|
||||
// Reason 1) When learning, there are times when the incense is on the first stage in relative PP, and it is difficult to display it correctly in the inverse transformation.
|
||||
// Reason 2) It is difficult to convert from Square with vertical Bitboard.
|
||||
|
||||
// --- <EFBFBD>Տ<EFBFBD><EFBFBD>̋<EFBFBD>
|
||||
// --- Pieces on the board
|
||||
f_pawn = fe_hand_end,
|
||||
e_pawn = f_pawn + SQUARE_NB,
|
||||
f_knight = e_pawn + SQUARE_NB,
|
||||
@@ -84,7 +84,7 @@ enum BonaPiece : int32_t
|
||||
fe_end = e_queen + SQUARE_NB,
|
||||
f_king = fe_end,
|
||||
e_king = f_king + SQUARE_NB,
|
||||
fe_end2 = e_king + SQUARE_NB, // <EFBFBD>ʂ<EFBFBD><EFBFBD>܂߂<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̔ԍ<EFBFBD><EFBFBD>B
|
||||
fe_end2 = e_king + SQUARE_NB, // Last number including balls.
|
||||
};
|
||||
|
||||
#define ENABLE_INCR_OPERATORS_ON(T) \
|
||||
@@ -95,8 +95,8 @@ ENABLE_INCR_OPERATORS_ON(BonaPiece)
|
||||
|
||||
#undef ENABLE_INCR_OPERATORS_ON
|
||||
|
||||
// BonaPiece<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>肩<EFBFBD>猩<EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>39<33>̕<EFBFBD><CC95><EFBFBD><EFBFBD><EFBFBD><EFBFBD>肩<EFBFBD>猩<EFBFBD><E78CA9><EFBFBD>ƌ<EFBFBD><C68C><EFBFBD><EFBFBD><EFBFBD>71<37>̕<EFBFBD>)<29>̔ԍ<CC94><D48D>Ƃ<EFBFBD>
|
||||
// <EFBFBD>y<EFBFBD>A<EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD>ExtBonaPiece<EFBFBD>^<5E>ƌĂԂ<C482><D482>Ƃɂ<C682><C982><EFBFBD><EFBFBD>B
|
||||
// The number when you look at BonaPiece from the back (the number of steps from the previous 39 to the number 71 from the back)
|
||||
// Let's call the paired one the ExtBonaPiece type.
|
||||
union ExtBonaPiece
|
||||
{
|
||||
struct {
|
||||
@@ -109,28 +109,28 @@ union ExtBonaPiece
|
||||
ExtBonaPiece(BonaPiece fw_, BonaPiece fb_) : fw(fw_), fb(fb_) {}
|
||||
};
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̎w<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ăǂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǂ<EFBFBD><EFBFBD>Ɉړ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><EFBFBD>̏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ExtBonaPiece<EFBFBD>\<5C><><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>B
|
||||
// Information about where the piece has moved from where to by this move.
|
||||
// Assume the piece is an ExtBonaPiece expression.
|
||||
struct ChangedBonaPiece
|
||||
{
|
||||
ExtBonaPiece old_piece;
|
||||
ExtBonaPiece new_piece;
|
||||
};
|
||||
|
||||
// KPP<EFBFBD>e<EFBFBD>[<5B>u<EFBFBD><75><EFBFBD>̔Տ<CC94><D58F>̋<EFBFBD>pc<70>ɑΉ<C991><CE89><EFBFBD><EFBFBD><EFBFBD>BonaPiece<63><65><EFBFBD><EFBFBD><EFBFBD>߂邽<DF82>߂̔z<CC94><7A><EFBFBD>B
|
||||
// <EFBFBD><EFBFBD>)
|
||||
// BonaPiece fb = kpp_board_index[pc].fb + sq; // <EFBFBD><EFBFBD><EFBFBD>肩<EFBFBD>猩<EFBFBD><EFBFBD>sq<EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD>pc<EFBFBD>ɑΉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BonaPiece
|
||||
// BonaPiece fw = kpp_board_index[pc].fw + sq; // <EFBFBD><EFBFBD><EFBFBD>肩<EFBFBD>猩<EFBFBD><EFBFBD>sq<EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD>pc<EFBFBD>ɑΉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BonaPiece
|
||||
// An array for finding the BonaPiece corresponding to the piece pc on the board of the KPP table.
|
||||
// example)
|
||||
// BonaPiece fb = kpp_board_index[pc].fb + sq; // BonaPiece corresponding to pc in sq seen from the front
|
||||
// BonaPiece fw = kpp_board_index[pc].fw + sq; // BonaPiece corresponding to pc in sq seen from behind
|
||||
extern ExtBonaPiece kpp_board_index[PIECE_NB];
|
||||
|
||||
// <EFBFBD>]<5D><><EFBFBD><EFBFBD><D690>ŗp<C597><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD>g<EFBFBD>B<EFBFBD>ǂ̋<C782>(PieceNumber)<29><><EFBFBD>ǂ<EFBFBD><C782>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>̂<EFBFBD>(BonaPiece)<29><><EFBFBD>ێ<EFBFBD><DB8E><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>
|
||||
// List of pieces used in the evaluation function. A structure holding which piece (PieceNumber) is where (BonaPiece)
|
||||
struct EvalList
|
||||
{
|
||||
// <EFBFBD>]<5D><><EFBFBD><EFBFBD>(FV38<33>^)<29>ŗp<C597><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԍ<EFBFBD><D48D>̃<EFBFBD><CC83>X<EFBFBD>g
|
||||
// List of frame numbers used in evaluation function (FV38 type)
|
||||
BonaPiece* piece_list_fw() const { return const_cast<BonaPiece*>(pieceListFw); }
|
||||
BonaPiece* piece_list_fb() const { return const_cast<BonaPiece*>(pieceListFb); }
|
||||
|
||||
// <EFBFBD>w<EFBFBD>肳<EFBFBD>ꂽpiece_no<EFBFBD>̋<EFBFBD><EFBFBD><EFBFBD>ExtBonaPiece<EFBFBD>^<5E>ɕϊ<C995><CF8A><EFBFBD><EFBFBD>ĕԂ<C495><D482>B
|
||||
// Convert the specified piece_no piece to ExtBonaPiece type and return it.
|
||||
ExtBonaPiece bona_piece(PieceNumber piece_no) const
|
||||
{
|
||||
ExtBonaPiece bp;
|
||||
@@ -139,36 +139,36 @@ struct EvalList
|
||||
return bp;
|
||||
}
|
||||
|
||||
// <EFBFBD>Տ<EFBFBD><EFBFBD><EFBFBD>sq<EFBFBD>̏<EFBFBD><EFBFBD><EFBFBD>piece_no<EFBFBD><EFBFBD>pc<EFBFBD>̋<EFBFBD><EFBFBD><EFBFBD><EFBFBD>z<EFBFBD>u<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// Place the piece_no pc piece in the sq box on the board
|
||||
void put_piece(PieceNumber piece_no, Square sq, Piece pc) {
|
||||
set_piece_on_board(piece_no, BonaPiece(kpp_board_index[pc].fw + sq), BonaPiece(kpp_board_index[pc].fb + Inv(sq)), sq);
|
||||
}
|
||||
|
||||
// <EFBFBD>Տ<EFBFBD><EFBFBD>̂<EFBFBD><EFBFBD>鏡sq<EFBFBD>ɑΉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PieceNumber<EFBFBD><EFBFBD><EFBFBD>Ԃ<EFBFBD><EFBFBD>B
|
||||
// Returns the PieceNumber corresponding to a box on the board.
|
||||
PieceNumber piece_no_of_board(Square sq) const { return piece_no_list_board[sq]; }
|
||||
|
||||
// pieceList<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɑΉ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鎞<EFBFBD>̂<EFBFBD><EFBFBD>߂ɁA<EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>p<EFBFBD>̋<EFBFBD><EFBFBD>̒l<EFBFBD><EFBFBD>BONA_PIECE_ZERO<EFBFBD>ɂ<EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// <EFBFBD>ʏ<EFBFBD><EFBFBD>̕]<5D><><EFBFBD><EFBFBD><D690><EFBFBD><EFBFBD><EFBFBD><EE978E><EFBFBD>̕]<5D><><EFBFBD><EFBFBD><D690>Ƃ<EFBFBD><C682>ė<EFBFBD><C497>p<EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||||
// piece_no_list<EFBFBD>̂ق<EFBFBD><EFBFBD>̓f<EFBFBD>o<EFBFBD>b<EFBFBD>O<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>悤<EFBFBD><EFBFBD>PIECE_NUMBER_NB<EFBFBD>ŏ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// Initialize the pieceList.
|
||||
// Set the value of unused pieces to BONA_PIECE_ZERO in case you want to deal with dropped pieces.
|
||||
// A normal evaluation function can be used as an evaluation function for missing frames.
|
||||
// piece_no_list is initialized with PIECE_NUMBER_NB to facilitate debugging.
|
||||
void clear()
|
||||
{
|
||||
|
||||
for (auto& p : pieceListFw)
|
||||
for (auto& p: pieceListFw)
|
||||
p = BONA_PIECE_ZERO;
|
||||
|
||||
for (auto& p : pieceListFb)
|
||||
for (auto& p: pieceListFb)
|
||||
p = BONA_PIECE_ZERO;
|
||||
|
||||
for (auto& v : piece_no_list_board)
|
||||
for (auto& v :piece_no_list_board)
|
||||
v = PIECE_NUMBER_NB;
|
||||
}
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŕێ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD><EFBFBD>pieceListFw[]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BonaPiece<63>ł<EFBFBD><C582>邩<EFBFBD><E982A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// <EFBFBD><EFBFBD> : <20>f<EFBFBD>o<EFBFBD>b<EFBFBD>O<EFBFBD>p<EFBFBD>B<EFBFBD>x<EFBFBD><78><EFBFBD>B
|
||||
// Check whether the pieceListFw[] held internally is a correct BonaPiece.
|
||||
// Note: For debugging. slow.
|
||||
bool is_valid(const Position& pos);
|
||||
|
||||
// <EFBFBD>Տ<EFBFBD>sq<EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD>piece_no<EFBFBD>̋<EFBFBD><EFBFBD><EFBFBD>BonaPiece<EFBFBD><EFBFBD>fb,fw<66>ł<EFBFBD><C582>邱<EFBFBD>Ƃ<EFBFBD><C682>ݒ肷<DD92><E882B7><EFBFBD>B
|
||||
// Set that the BonaPiece of the piece_no piece on the board sq is fb,fw.
|
||||
inline void set_piece_on_board(PieceNumber piece_no, BonaPiece fw, BonaPiece fb, Square sq)
|
||||
{
|
||||
assert(is_ok(piece_no));
|
||||
@@ -177,21 +177,21 @@ struct EvalList
|
||||
piece_no_list_board[sq] = piece_no;
|
||||
}
|
||||
|
||||
// <EFBFBD><EFBFBD>X<EFBFBD>g<EFBFBD>B<EFBFBD><EFBFBD><EFBFBD>ԍ<EFBFBD>(PieceNumber)<29><><EFBFBD><EFBFBD><EFBFBD>̋<CC8B>ǂ<EFBFBD><C782>ɂ<EFBFBD><C982><EFBFBD><EFBFBD>̂<EFBFBD>(BonaPiece)<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BFV38<EFBFBD>Ȃǂŗp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// Piece list. Piece Number Shows how many pieces are in place (Bona Piece). Used in FV38 etc.
|
||||
|
||||
// <EFBFBD><EFBFBD>X<EFBFBD>g<EFBFBD>̒<EFBFBD><EFBFBD><EFBFBD>
|
||||
// 38<EFBFBD>Œ<EFBFBD>
|
||||
// Length of piece list
|
||||
// 38 fixed
|
||||
public:
|
||||
int length() const { return PIECE_NUMBER_KING; }
|
||||
|
||||
// VPGATHERDD<EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><EFBFBD><EFBFBD>A4<EFBFBD>̔{<7B><><EFBFBD>łȂ<C582><C882><EFBFBD><EFBFBD>Ȃ<CE82><C882>Ȃ<EFBFBD><C882>B
|
||||
// <EFBFBD>܂<EFBFBD><EFBFBD>AKPPT<EFBFBD>^<5E>]<5D><><EFBFBD><EFBFBD><D690>Ȃǂ́A39,40<34>Ԗڂ̗v<CC97>f<EFBFBD><66><EFBFBD>[<5B><><EFBFBD>ł<EFBFBD><C582>邱<EFBFBD>Ƃ<EFBFBD><C682>O<EFBFBD><4F><EFBFBD>Ƃ<EFBFBD><C682><EFBFBD>
|
||||
// <EFBFBD>A<EFBFBD>N<EFBFBD>Z<EFBFBD>X<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӏ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂Œ<EFBFBD><EFBFBD>ӂ<EFBFBD><EFBFBD>邱<EFBFBD>ƁB
|
||||
// Must be a multiple of 4 to use VPGATHERDD.
|
||||
// In addition, the KPPT type evaluation function, etc. is based on the assumption that the 39th and 40th elements are zero.
|
||||
// Please note that there is a part that is accessed.
|
||||
static const int MAX_LENGTH = 32;
|
||||
|
||||
// <EFBFBD>Տ<EFBFBD><EFBFBD>̋<EFBFBD><EFBFBD>ɑ<EFBFBD><EFBFBD>āA<EFBFBD><EFBFBD><EFBFBD>̋<EFBFBD><EFBFBD>ԍ<EFBFBD>(PieceNumber)<29><><EFBFBD>ێ<EFBFBD><DB8E><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD>z<EFBFBD><7A>
|
||||
// <EFBFBD>ʂ<EFBFBD>SQUARE_NB<EFBFBD>Ɉړ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><EFBFBD>p<EFBFBD><EFBFBD>+1<>܂ŕێ<C595><DB8E><EFBFBD><EFBFBD>Ă<EFBFBD><C482><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A
|
||||
// SQUARE_NB<EFBFBD>̋ʂ<EFBFBD><EFBFBD>ړ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD><EFBFBD>̂ŁA<EFBFBD><EFBFBD><EFBFBD>̒l<EFBFBD><EFBFBD><EFBFBD>g<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ͂Ȃ<EFBFBD><EFBFBD>͂<EFBFBD><EFBFBD>B
|
||||
// An array that holds the piece number (PieceNumber) for the pieces on the board
|
||||
// Hold up to +1 for when the ball is moving to SQUARE_NB,
|
||||
// SQUARE_NB balls are not moved, so this value should never be used.
|
||||
PieceNumber piece_no_list_board[SQUARE_NB_PLUS1];
|
||||
private:
|
||||
|
||||
@@ -199,20 +199,20 @@ private:
|
||||
BonaPiece pieceListFb[MAX_LENGTH];
|
||||
};
|
||||
|
||||
// <EFBFBD>]<5D><><EFBFBD>l<EFBFBD>̍<EFBFBD><CC8D><EFBFBD><EFBFBD>v<EFBFBD>Z<EFBFBD>̊Ǘ<CC8A><C797>p
|
||||
// <EFBFBD>O<EFBFBD>̋ǖʂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ړ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԍ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǘ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>邽<EFBFBD>߂̍\<5C><><EFBFBD><EFBFBD>
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>́A<EFBFBD>ő<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>B
|
||||
// For management of evaluation value difference calculation
|
||||
// A structure for managing the number of pieces that have moved from the previous stage
|
||||
// Up to 2 moving pieces.
|
||||
struct DirtyPiece
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD>̋<EFBFBD><EFBFBD>ԍ<EFBFBD><EFBFBD>̋<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>牽<EFBFBD>ɕς<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD>
|
||||
// What changed from the piece with that piece number
|
||||
Eval::ChangedBonaPiece changed_piece[2];
|
||||
|
||||
// dirty<EFBFBD>ɂȂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԍ<EFBFBD>
|
||||
// The number of dirty pieces
|
||||
PieceNumber pieceNo[2];
|
||||
|
||||
// dirty<EFBFBD>ɂȂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
|
||||
// null move<76><65><EFBFBD><EFBFBD>0<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>肤<EFBFBD><E882A4><EFBFBD>B
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǝ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƃōő<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>B
|
||||
// The number of dirty files.
|
||||
// It can be 0 for null move.
|
||||
// Up to 2 moving pieces and taken pieces.
|
||||
int dirty_num;
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user