223 size_t read_count = 0;
230 if (! reader.hasNext())
232 int val = reader.read();
238 piece_values[i] = val;
242 Piece_Value.reset(piece_values);
246 for (
size_t i = 0; i < piece_pair_weights.dimension(); ++i)
248 if (! reader.hasNext())
250 int val = reader.read();
251 piece_pair_weights.setValue(i, val);
257 read_count += setUpOne<King25EffectAttack>(reader);
258 read_count += setUpOne<King25EffectYAttack>(reader);
259 read_count += setUpOne<PiecePairKing>(reader);
260 read_count += setUpOne<BishopExchangeSilverKing>(reader);
261 read_count += setUpOne<EnterKingDefense>(reader);
264 read_count += setUpOne<PieceStand>(reader,0);
265 read_count += setUpOne<King25EffectEachBothOpening>(reader);
266 read_count += setUpOne<PawnDrop>(reader,0);
267 read_count += setUpOne<NoPawnOnStand>(reader,0);
268 read_count += setUpOne<GoldRetreat>(reader,0);
269 read_count += setUpOne<SilverRetreat>(reader,0);
270 read_count += setUpOne<KnightAdvance>(reader,0);
271 read_count += setUpOne<AllMajor>(reader,0);
272 read_count += setUpOne<KingXBlocked>(reader,0);
273 read_count += setUpOne<KingXBlockedY>(reader,0);
274 read_count += setUpOne<AllGold>(reader,0);
275 read_count += setUpOne<PtypeX>(reader,0);
276 read_count += setUpOne<PtypeY>(reader,0);
277 read_count += setUpOne<AnagumaEmpty>(reader,0);
278 read_count += setUpOne<NonPawnPieceStand>(reader,0);
279 read_count += setUpOne<King25EffectDefense>(reader,0);
280 read_count += setUpOne<King25EffectYDefense>(reader,0);
281 read_count += setUpOne<RookMobility>(reader,0);
282 read_count += setUpOne<BishopMobility>(reader,0);
283 read_count += setUpOne<LanceMobility>(reader,0);
284 read_count += setUpOne<RookEffect>(reader,0);
285 read_count += setUpOne<BishopEffect>(reader,0);
286 read_count += setUpOne<PawnAdvance>(reader,0);
287 read_count += setUpOne<PawnDropY>(reader,0);
288 read_count += setUpOne<KnightCheck>(reader,0);
291 read_count += setUpOne<PieceStand>(reader,1);
292 read_count += setUpOne<King25EffectEachBothMidgame>(reader);
293 read_count += setUpOne<PawnDrop>(reader,1);
294 read_count += setUpOne<NoPawnOnStand>(reader,1);
295 read_count += setUpOne<GoldRetreat>(reader,1);
296 read_count += setUpOne<SilverRetreat>(reader,1);
297 read_count += setUpOne<KnightAdvance>(reader,1);
298 read_count += setUpOne<AllMajor>(reader,1);
299 read_count += setUpOne<KingXBlocked>(reader,1);
300 read_count += setUpOne<KingXBlockedY>(reader,1);
301 read_count += setUpOne<AllGold>(reader,1);
302 read_count += setUpOne<PtypeX>(reader,1);
303 read_count += setUpOne<PtypeY>(reader,1);
304 read_count += setUpOne<AnagumaEmpty>(reader,1);
305 read_count += setUpOne<NonPawnPieceStand>(reader,1);
306 read_count += setUpOne<King25EffectDefense>(reader,1);
307 read_count += setUpOne<King25EffectYDefense>(reader,1);
308 read_count += setUpOne<RookMobility>(reader,1);
309 read_count += setUpOne<BishopMobility>(reader,1);
310 read_count += setUpOne<LanceMobility>(reader,1);
311 read_count += setUpOne<RookEffect>(reader,1);
312 read_count += setUpOne<BishopEffect>(reader,1);
313 read_count += setUpOne<PawnAdvance>(reader,1);
314 read_count += setUpOne<PawnDropY>(reader,1);
315 read_count += setUpOne<KnightCheck>(reader,1);
319 read_count += setUpOne<PieceStand>(reader,2);
320 read_count += setUpOne<King25EffectEachBothMidgame2>(reader);
321 read_count += setUpOne<PawnDrop>(reader,2);
322 read_count += setUpOne<NoPawnOnStand>(reader,2);
323 read_count += setUpOne<GoldRetreat>(reader,2);
324 read_count += setUpOne<SilverRetreat>(reader,2);
325 read_count += setUpOne<KnightAdvance>(reader,2);
326 read_count += setUpOne<AllMajor>(reader,2);
327 read_count += setUpOne<KingXBlocked>(reader,2);
328 read_count += setUpOne<KingXBlockedY>(reader,2);
329 read_count += setUpOne<AllGold>(reader,2);
330 read_count += setUpOne<PtypeX>(reader,2);
331 read_count += setUpOne<PtypeY>(reader,2);
332 read_count += setUpOne<AnagumaEmpty>(reader,2);
333 read_count += setUpOne<NonPawnPieceStand>(reader,2);
334 read_count += setUpOne<King25EffectDefense>(reader,2);
335 read_count += setUpOne<King25EffectYDefense>(reader,2);
336 read_count += setUpOne<RookMobility>(reader,2);
337 read_count += setUpOne<BishopMobility>(reader,2);
338 read_count += setUpOne<LanceMobility>(reader,2);
339 read_count += setUpOne<RookEffect>(reader,2);
340 read_count += setUpOne<BishopEffect>(reader,2);
341 read_count += setUpOne<PawnAdvance>(reader,2);
342 read_count += setUpOne<PawnDropY>(reader,2);
343 read_count += setUpOne<KnightCheck>(reader,2);
347 read_count += setUpOne<PieceStand>(reader,
EndgameIndex);
348 read_count += setUpOne<King25EffectEachBothEnding>(reader);
350 read_count += setUpOne<NoPawnOnStand>(reader,
EndgameIndex);
351 read_count += setUpOne<GoldRetreat>(reader,
EndgameIndex);
352 read_count += setUpOne<SilverRetreat>(reader,
EndgameIndex);
353 read_count += setUpOne<KnightAdvance>(reader,
EndgameIndex);
355 read_count += setUpOne<KingXBlocked>(reader,
EndgameIndex);
356 read_count += setUpOne<KingXBlockedY>(reader,
EndgameIndex);
360 read_count += setUpOne<AnagumaEmpty>(reader,
EndgameIndex);
361 read_count += setUpOne<NonPawnPieceStand>(reader,
EndgameIndex);
362 read_count += setUpOne<King25EffectDefense>(reader,
EndgameIndex);
363 read_count += setUpOne<King25EffectYDefense>(reader,
EndgameIndex);
364 read_count += setUpOne<RookMobility>(reader,
EndgameIndex);
365 read_count += setUpOne<BishopMobility>(reader,
EndgameIndex);
366 read_count += setUpOne<LanceMobility>(reader,
EndgameIndex);
367 read_count += setUpOne<RookEffect>(reader,
EndgameIndex);
368 read_count += setUpOne<BishopEffect>(reader,
EndgameIndex);
369 read_count += setUpOne<PawnAdvance>(reader,
EndgameIndex);
371 read_count += setUpOne<KnightCheck>(reader,
EndgameIndex);
374 read_count += setUpOne<KingPieceRelative>(reader,0);
375 read_count += setUpOne<KingPieceRelative>(reader,1);
377 read_count += setUpOne<KingPieceRelative>(reader,2);
379 read_count += setUpOne<KingPieceRelative>(reader,
EndgameIndex);
380 read_count += setUpOne<NonPawnPieceStandTurn>(reader);
381 read_count += setUpOne<King25EffectEachXY>(reader);
382 read_count += setUpOne<RookPawnY>(reader);
383 read_count += setUpOne<RookEffectPiece>(reader);
384 read_count += setUpOne<BishopEffectPiece>(reader);
385 read_count += setUpOne<PieceStandY>(reader);
386 read_count += setUpOne<RookEffectPieceKingRelative>(reader);
387 read_count += setUpOne<BishopEffectPieceKingRelative>(reader);
388 read_count += setUpOne<RookPawnYX>(reader);
389 read_count += setUpOne<PawnPtypeOPtypeO>(reader);
390 read_count += setUpOne<PromotedMinorPieces>(reader);
391 read_count += setUpOne<KingPieceRelativeNoSupport>(reader);
392 read_count += setUpOne<NonPawnAttacked>(reader);
393 read_count += setUpOne<PtypeYY>(reader);
394 read_count += setUpOne<PawnPtypeOPtypeOY>(reader);
395 read_count += setUpOne<PawnDropX>(reader);
396 read_count += setUpOne<King3Pieces>(reader);
397 read_count += setUpOne<King3PiecesXY>(reader);
398 read_count += setUpOne<King25EffectEachKXY>(reader);
399 read_count += setUpOne<BishopHead>(reader);
400 read_count += setUpOne<BishopHeadKingRelative>(reader);
401 read_count += setUpOne<KnightCheckY>(reader);
402 read_count += setUpOne<KnightHead>(reader);
403 read_count += setUpOne<RookPromoteDefense>(reader);
404 read_count += setUpOne<PawnDropPawnStand>(reader);
405 read_count += setUpOne<PawnDropPawnStandX>(reader);
406 read_count += setUpOne<PawnDropPawnStandY>(reader);
407 read_count += setUpOne<KnightHeadOppPiecePawnOnStand>(reader);
408 read_count += setUpOne<KingXBothBlocked>(reader);
409 read_count += setUpOne<KingXBothBlockedY>(reader);
410 read_count += setUpOne<KingRookBishop>(reader);
411 read_count += setUpOne<PromotedMinorPiecesY>(reader);
412 read_count += setUpOne<King25EffectSupported>(reader);
413 read_count += setUpOne<King25EffectSupportedY>(reader);
414 read_count += setUpOne<NonPawnAttackedKingRelative>(reader);
415 read_count += setUpOne<NonPawnAttackedPtype>(reader);
416 read_count += setUpOne<PtypeCount>(reader);
417 read_count += setUpOne<KingXBlocked3>(reader);
418 read_count += setUpOne<KingXBlocked3Y>(reader);
419 read_count += setUpOne<PtypeCountXY>(reader);
420 read_count += setUpOne<PtypeCountXYAttack>(reader);
421 read_count += setUpOne<LanceEffectPieceKingRelative>(reader);
422 read_count += setUpOne<KingMobility>(reader);
423 read_count += setUpOne<KingMobilitySum>(reader);
424 read_count += setUpOne<PtypeYPawnY>(reader);
425 read_count += setUpOne<GoldAndSilverNearKing>(reader);
426 read_count += setUpOne<PtypeCombination>(reader);
427 read_count += setUpOne<PieceStandCombinationBoth>(reader);
428 read_count += setUpOne<King25BothSide>(reader);
429 read_count += setUpOne<King25BothSideX>(reader);
430 read_count += setUpOne<King25BothSideY>(reader);
431 read_count += setUpOne<GoldAndSilverNearKingCombination>(reader);
432 read_count += setUpOne<KingMobilityWithRook>(reader);
433 read_count += setUpOne<KingMobilityWithBishop>(reader);
434 read_count += setUpOne<NumPiecesBetweenBishopAndKingSelf>(reader);
435 read_count += setUpOne<NumPiecesBetweenBishopAndKingOpp>(reader);
436 read_count += setUpOne<NumPiecesBetweenBishopAndKingAll>(reader);
437 read_count += setUpOne<King25Effect3>(reader);
438 read_count += setUpOne<SilverHeadPawnKingRelative>(reader);
439 read_count += setUpOne<GoldKnightKingRelative>(reader);
440 read_count += setUpOne<RookMobilitySum>(reader);
441 read_count += setUpOne<RookMobilityX>(reader);
442 read_count += setUpOne<RookMobilityY>(reader);
443 read_count += setUpOne<RookMobilitySumKingX>(reader);
444 read_count += setUpOne<RookMobilityXKingX>(reader);
445 read_count += setUpOne<PinPtype>(reader);
446 read_count += setUpOne<PinPtypeDistance>(reader);
447 read_count += setUpOne<BishopMobilityEach>(reader);
448 read_count += setUpOne<BishopBishopPiece>(reader);
449 read_count += setUpOne<NonPawnPieceStandCombination>(reader);
450 read_count += setUpOne<CanCheckNonPawnPieceStandCombination>(reader);
451 read_count += setUpOne<King25Effect3Y>(reader);
452 read_count += setUpOne<RookRook>(reader);
453 read_count += setUpOne<RookRookPiece>(reader);
454 read_count += setUpOne<PinPtypePawnAttack>(reader);
455 read_count += setUpOne<King25Mobility>(reader);
456 read_count += setUpOne<King25MobilityX>(reader);
457 read_count += setUpOne<King25MobilityY>(reader);
458 read_count += setUpOne<King25EffectCountCombination>(reader);
459 read_count += setUpOne<GoldSideMove>(reader);
460 read_count += setUpOne<King25EffectCountCombinationY>(reader);
461 read_count += setUpOne<RookPromoteDefenseRookH>(reader);
462 read_count += setUpOne<BishopHeadX>(reader);
463 read_count += setUpOne<PawnDropNonDrop>(reader);
464 read_count += setUpOne<PawnStateKingRelative>(reader);
465 read_count += setUpOne<SilverFork>(reader);
466 read_count += setUpOne<BishopRookFork>(reader);
467 read_count += setUpOne<BishopStandFile5>(reader);
468 read_count += setUpOne<KnightFork>(reader);
469 read_count += setUpOne<NonPawnAttackedPtypePair>(reader);
470 read_count += setUpOne<MajorCheckWithCapture>(reader);
471 read_count += setUpOne<SilverAdvance26>(reader);
472 read_count += setUpOne<RookSilverKnight>(reader);
473 read_count += setUpOne<BishopSilverKnight>(reader);
474 read_count += setUpOne<AttackMajorsInBase>(reader);
475 read_count += setUpOne<CheckShadowPtype>(reader);
476 read_count += setUpOne<Promotion37>(reader);
478 initialized_flag = reader.failed() ? Zero : Loaded;
479 if (initialized_flag != Loaded)
481 std::cerr <<
"Failed to load OpenMidEndingEval data "
482 <<
' ' << read_count << std::endl;
771 assert(last_move.
player()==P);
789 ++non_pawn_stand_count[P];
793 pawns[
alt(P)][last_move.
to().
x() - 1] = 0;
811 const int y_diff = std::abs(last_move.
to().
y() - opp_king.
y());
812 const int x_diff = std::abs(last_move.
to().
x() - opp_king.
x());
813 if (y_diff <= 2 && x_diff <= 3)
815 --gs_near_king_count[
alt(P)][std::max(x_diff, y_diff) - 1];
821 if (base_ptype ==
GOLD || base_ptype ==
SILVER)
825 const int y_diff = std::abs(last_move.
from().
y() - self_king.
y());
826 const int x_diff = std::abs(last_move.
from().
x() - self_king.
x());
827 if (y_diff <= 2 && x_diff <= 3)
829 --gs_near_king_count[P][std::max(x_diff, y_diff) - 1];
833 const int y_diff = std::abs(last_move.
to().
y() - self_king.
y());
834 const int x_diff = std::abs(last_move.
to().
x() - self_king.
x());
835 if (y_diff <= 2 && x_diff <= 3)
837 ++gs_near_king_count[P][std::max(x_diff, y_diff) - 1];
841 if (base_ptype ==
KING)
843 updateGoldSilverNearKing(new_state);
848 --non_pawn_stand_count[P];
852 pawns[P][last_move.
from().
x() - 1] = 0;
856 pawns[P][last_move.
to().
x() - 1] = last_move.
to().
y();
862 mask.
set(last_move.
to());
863 const bool update_black = mask.
anyInRange(Board_Mask_Table5x5.
mask(kw));
864 const bool update_white = mask.
anyInRange(Board_Mask_Table5x5.
mask(kb));
867 effect25_supported[
WHITE] ||
868 (~effect25_supported[
WHITE] & effect25[
WHITE] & ~new_state.effectedMask(
BLACK)) !=
869 (~effect25_supported[
WHITE] & effect25[
WHITE])){
870 King25EffectBoth::countEffectAndPiecesBoth<BLACK>(
871 new_state, effect25[
WHITE], effect25_supported[
WHITE],
872 black_attack_effect, black_attack_piece,
873 white_defense_effect, white_defense_piece,
874 black_attack_supported_piece, white_vertical, white_king_vertical);
875 king25_both_side[
WHITE]=King25BothSide::evalOne<WHITE>(new_state,white_vertical);
879 effect25_supported[
BLACK] ||
881 (~effect25_supported[
BLACK] & effect25[
BLACK])){
882 King25EffectBoth::countEffectAndPiecesBoth<WHITE>(
883 new_state, effect25[
BLACK], effect25_supported[
BLACK],
884 white_attack_effect, white_attack_piece,
885 black_defense_effect, black_defense_piece,
886 white_attack_supported_piece, black_vertical, black_king_vertical);
887 king25_both_side[
BLACK]=King25BothSide::evalOne<BLACK>(new_state,black_vertical);
890#ifdef USE_TEST_PROGRESS
891 progress.updateSub<P>(new_state, last_move);
893 progress.update(new_state, last_move);
896 progress_independent_value =
897 PieceEval::evalWithUpdate<P>(new_state, last_move, progress_independent_value);
899 PieceStand::evalWithUpdate<P>(new_state, last_move,
927 recalculated_stage_value = silver_features+gold_retreat;
940 white_attack_effect, white_attack_piece);
941 recalculated_value +=
945 white_attack_effect, white_attack_piece);
947 recalculated_stage_value +=
949 white_defense_effect, white_defense_piece);
950 recalculated_stage_value +=
952 black_defense_effect,
954 white_defense_effect, white_defense_piece);
955 recalculated_stage_value += knight_advance;
957 recalculated_stage_value += kingx_blocked[
BLACK] + kingx_blocked[
WHITE];
970 black_attack_supported_piece,
971 white_attack_supported_piece);
975 black_attack_supported_piece,
976 white_attack_supported_piece,
979 recalculated_stage_value += result_supported + result_supported_y;
982 king_rook_bishop[
BLACK]=KingRookBishop::evalOne<BLACK>(new_state);
983 king_rook_bishop[
WHITE]=KingRookBishop::evalOne<WHITE>(new_state);
986 king_rook_bishop[P]=KingRookBishop::evalOne<P>(new_state);
988 recalculated_stage_value +=king_rook_bishop[
BLACK]-king_rook_bishop[
WHITE];
990 recalculated_stage_value += king25_both_side[
BLACK]-king25_both_side[
WHITE];
993 white_king_vertical);
995 king_table_value = KingPieceRelative::evalWithUpdate<P>
996 (new_state, last_move, king_table_value);
1000 PiecePairKing::evalWithUpdateBang<P>(new_state, last_move,
1001 piece_pair_king_value);
1002 pawn_drop = PawnDropBoth::evalWithUpdate<P>(new_state,
1003 last_move, pawn_drop);
1005 ptypex = PtypeX::evalWithUpdate<P>(new_state, last_move, ptypex);
1006 ptypey = PtypeY::evalWithUpdate<P>(new_state, last_move, ptypey);
1008 can_check_new[
BLACK] =
1009 CanCheckNonPawnPieceStandCombination::canCheck<BLACK>(new_state);
1010 can_check_new[
WHITE] =
1011 CanCheckNonPawnPieceStandCombination::canCheck<WHITE>(new_state);
1012 piece_stand_combination =
1015 piece_stand_combination,
1018 can_check = can_check_new;
1019 NonPawnPieceStandTurn::evalWithUpdateBang<P>(new_state,
1023 piece_stand_y = PieceStandY::evalWithUpdate<P>(new_state, last_move,
1025 PawnAdvanceAll::evalWithUpdateBang<P>(new_state,
1030 pawn_ptypeo = PawnPtypeOPtypeO::template evalWithUpdate<P>(new_state, last_move,
1034 promoted_minor_piece =
1037 promoted_minor_piece);
1042 NonPawnAttacked::evalWithUpdateBang<P>(new_state,
1044 effected_mask_for_attacked,
1046 NonPawnAttackedPtype::evalWithUpdateBang<P>(
1047 new_state, last_move, effected_mask_for_attacked,
1048 attacked_mask, non_pawn_attacked_ptype);
1049 effected_mask[
BLACK] =
1050 effected_mask_for_attacked[
BLACK] =
1052 effected_mask[
WHITE] =
1053 effected_mask_for_attacked[
WHITE] =
1055 mask_t black_ppawn =
1056 effected_mask_for_attacked[
BLACK].selectBit<
PAWN>() &
1058 mask_t white_ppawn =
1059 effected_mask_for_attacked[
WHITE].selectBit<
PAWN>() &
1061 effected_mask_for_attacked[
BLACK].clearBit<
PAWN>();
1062 effected_mask_for_attacked[
WHITE].clearBit<
PAWN>();
1071 PtypeCount::evalWithUpdateBang<P>(new_state,
1072 last_move, ptype_count, ptype_board_count,
1073 ptype_count_value,ptypeo_mask);
1074 PtypeYPawnY::evalWithUpdateBang<P>(new_state, last_move,pawns, ptype_y_pawn_y);
1105#ifdef USE_TEST_PROGRESS
1106 recalculated_stage_value += progress.rawData().promotion37_eval;
1107 recalculated_stage_value += progress.rawData().non_pawn_ptype_attacked_pair_eval[
BLACK]
1108 + progress.rawData().non_pawn_ptype_attacked_pair_eval[
WHITE];
1115 piece_fork_turn += KnightFork::evalWithUpdate<P>(new_state, last_move, knight_fork_squares, knight_drop);
1319 initialized_flag = Random;
1321 setRandomOne<King25EffectAttack>();
1322 setRandomOne<King25EffectYAttack>();
1325 setRandomOne<PieceStand>(0);
1326 setRandomOne<Pin>(0);
1327 setRandomOne<King25EffectEachBothOpening>();
1328 setRandomOne<PawnDrop>(0);
1329 setRandomOne<NoPawnOnStand>(0);
1330 setRandomOne<GoldRetreat>(0);
1331 setRandomOne<SilverRetreat>(0);
1332 setRandomOne<KnightAdvance>(0);
1333 setRandomOne<AllMajor>(0);
1334 setRandomOne<KingXBlocked>(0);
1335 setRandomOne<KingXBlockedY>(0);
1336 setRandomOne<AllGold>(0);
1337 setRandomOne<PtypeX>(0);
1338 setRandomOne<PtypeY>(0);
1339 setRandomOne<AnagumaEmpty>(0);
1340 setRandomOne<NonPawnPieceStand>(0);
1341 setRandomOne<King25EffectDefense>(0);
1342 setRandomOne<King25EffectYDefense>(0);
1343 setRandomOne<RookMobility>(0);
1344 setRandomOne<BishopMobility>(0);
1345 setRandomOne<LanceMobility>(0);
1346 setRandomOne<RookEffect>(0);
1347 setRandomOne<BishopEffect>(0);
1348 setRandomOne<PawnAdvance>(0);
1349 setRandomOne<PawnDropY>(0);
1350 setRandomOne<KnightCheck>(0);
1353 setRandomOne<PieceStand>(1);
1354 setRandomOne<Pin>(1);
1355 setRandomOne<King25EffectEachBothMidgame>();
1356 setRandomOne<PawnDrop>(1);
1357 setRandomOne<NoPawnOnStand>(1);
1358 setRandomOne<GoldRetreat>(1);
1359 setRandomOne<SilverRetreat>(1);
1360 setRandomOne<KnightAdvance>(1);
1361 setRandomOne<AllMajor>(1);
1362 setRandomOne<KingXBlocked>(1);
1363 setRandomOne<KingXBlockedY>(1);
1364 setRandomOne<AllGold>(1);
1365 setRandomOne<PtypeX>(1);
1366 setRandomOne<PtypeY>(1);
1367 setRandomOne<AnagumaEmpty>(1);
1368 setRandomOne<NonPawnPieceStand>(1);
1369 setRandomOne<King25EffectDefense>(1);
1370 setRandomOne<King25EffectYDefense>(1);
1371 setRandomOne<RookMobility>(1);
1372 setRandomOne<BishopMobility>(1);
1373 setRandomOne<LanceMobility>(1);
1374 setRandomOne<RookEffect>(1);
1375 setRandomOne<BishopEffect>(1);
1376 setRandomOne<PawnAdvance>(1);
1377 setRandomOne<PawnDropY>(1);
1378 setRandomOne<KnightCheck>(1);
1382 setRandomOne<PieceStand>(2);
1383 setRandomOne<Pin>(2);
1384 setRandomOne<King25EffectEachBothEnding>();
1385 setRandomOne<PawnDrop>(2);
1386 setRandomOne<NoPawnOnStand>(2);
1387 setRandomOne<GoldRetreat>(2);
1388 setRandomOne<SilverRetreat>(2);
1389 setRandomOne<KnightAdvance>(2);
1390 setRandomOne<AllMajor>(2);
1391 setRandomOne<KingXBlocked>(2);
1392 setRandomOne<KingXBlockedY>(2);
1393 setRandomOne<AllGold>(2);
1394 setRandomOne<PtypeX>(2);
1395 setRandomOne<PtypeY>(2);
1396 setRandomOne<AnagumaEmpty>(2);
1397 setRandomOne<NonPawnPieceStand>(2);
1398 setRandomOne<King25EffectDefense>(2);
1399 setRandomOne<King25EffectYDefense>(2);
1400 setRandomOne<RookMobility>(2);
1401 setRandomOne<BishopMobility>(2);
1402 setRandomOne<LanceMobility>(2);
1403 setRandomOne<RookEffect>(2);
1404 setRandomOne<BishopEffect>(2);
1405 setRandomOne<PawnAdvance>(2);
1406 setRandomOne<PawnDropY>(2);
1407 setRandomOne<KnightCheck>(2);
1412 setRandomOne<King25EffectEachBothMidgame>();
1438 setRandomOne<KingPieceRelative>(0);
1439 setRandomOne<KingPieceRelative>(1);
1441 setRandomOne<KingPieceRelative>(2);
1444 setRandomOne<NonPawnPieceStandCombination>();
1445 setRandomOne<NonPawnPieceStandTurn>();
1446 setRandomOne<King25EffectEachXY>();
1447 setRandomOne<RookPawnY>();
1448 setRandomOne<RookEffectPiece>();
1449 setRandomOne<BishopEffectPiece>();
1450 setRandomOne<PieceStandY>();
1451 setRandomOne<RookEffectPieceKingRelative>();
1452 setRandomOne<BishopEffectPieceKingRelative>();
1453 setRandomOne<RookPawnYX>();
1454 setRandomOne<PawnPtypeOPtypeO>();
1455 setRandomOne<CanCheckNonPawnPieceStandCombination>();
1456 setRandomOne<PromotedMinorPieces>();
1457 setRandomOne<KingPieceRelativeNoSupport>();
1458 setRandomOne<NonPawnAttacked>();
1459 setRandomOne<PtypeYY>();
1460 setRandomOne<PawnPtypeOPtypeOY>();
1461 setRandomOne<PawnDropX>();
1462 setRandomOne<King3Pieces>();
1463 setRandomOne<King3PiecesXY>();
1464 setRandomOne<King25EffectEachKXY>();
1465 setRandomOne<BishopHead>();
1466 setRandomOne<BishopHeadKingRelative>();
1467 setRandomOne<KnightCheckY>();
1468 setRandomOne<KnightHead>();
1469 setRandomOne<RookPromoteDefense>();
1470 setRandomOne<PawnDropPawnStand>();
1471 setRandomOne<PawnDropPawnStandX>();
1472 setRandomOne<PawnDropPawnStandY>();
1473 setRandomOne<King25Effect2>();
1474 setRandomOne<King25EffectY2>();
1475 setRandomOne<KnightHeadOppPiecePawnOnStand>();
1476 setRandomOne<KingXBothBlocked>();
1477 setRandomOne<KingXBothBlockedY>();
1478 setRandomOne<KingRookBishop>();
1479 setRandomOne<PromotedMinorPiecesY>();
1480 setRandomOne<King25EffectSupported>();
1481 setRandomOne<King25EffectSupportedY>();
1482 setRandomOne<NonPawnAttackedKingRelative>();
1483 setRandomOne<NonPawnAttackedPtype>();
1484 setRandomOne<PtypeCount>();
1485 setRandomOne<KingXBlocked3>();
1486 setRandomOne<KingXBlocked3Y>();
1487 setRandomOne<PtypeCountXY>();
1488 setRandomOne<PtypeCountXYAttack>();
1489 setRandomOne<LanceEffectPieceKingRelative>();
1490 setRandomOne<KingMobility>();
1491 setRandomOne<KingMobilitySum>();
1492 setRandomOne<MajorCheckWithCapture>();
1493 setRandomOne<RookSilverKnight>();
1494 setRandomOne<BishopSilverKnight>();