00001 #include "osl/ptype.h"
00002 #include "osl/direction.h"
00003 #include "osl/effect/liberty8Table.h"
00004 #include "osl/pieceTable.h"
00005 #include "osl/hash/hashKey.h"
00006
00007 #include "osl/move_generator/addEffect8Table.h"
00008 #include "osl/progress/ptypeProgress.h"
00009 #include "osl/progress/effect5x3Table.h"
00010 #include "osl/pathEncoding.h"
00011 #include "osl/effect/moveSignature.h"
00012
00013 #include "osl/centering3x3.h"
00014 #include "osl/centering5x3.h"
00015 #include "osl/effect_util/neighboring8Direct.h"
00016 #include "osl/effect_util/neighboring8Effect.h"
00017 #include "osl/effect_util/sendOffPosition.h"
00018
00019 #include "osl/checkmate/immediateCheckmateTable.h"
00020 #include "osl/checkmate/proofNumberTable.h"
00021
00022 #include "osl/rating/featureSet.h"
00023
00024 #include "osl/eval/pieceEval.h"
00025 #include "osl/eval/ppair/piecePairRawEval.h"
00026 #include "osl/eval/ppair/piecePairPieceEval.h"
00027 #include "osl/eval/endgame/attackKing.h"
00028 #include "osl/eval/endgame/defenseKing.h"
00029 #include "osl/eval/mobilityTable.h"
00030
00031 #include "osl/container/boardMask.h"
00032 namespace osl
00033 {
00035 const osl::CArray<int,10> osl::progress::PtypeProgressTable::yVals =
00036 {{
00037 0,4,4,4,3,2,1,0,0,0
00038 }};
00039
00040 const CArray<Offset,DIRECTION_SIZE> BoardTable::offsets = { {
00041 DirectionTraits<static_cast<Direction>(0)>::blackOffset(),
00042 DirectionTraits<static_cast<Direction>(1)>::blackOffset(),
00043 DirectionTraits<static_cast<Direction>(2)>::blackOffset(),
00044 DirectionTraits<static_cast<Direction>(3)>::blackOffset(),
00045 DirectionTraits<static_cast<Direction>(4)>::blackOffset(),
00046 DirectionTraits<static_cast<Direction>(5)>::blackOffset(),
00047 DirectionTraits<static_cast<Direction>(6)>::blackOffset(),
00048 DirectionTraits<static_cast<Direction>(7)>::blackOffset(),
00049 DirectionTraits<static_cast<Direction>(8)>::blackOffset(),
00050 DirectionTraits<static_cast<Direction>(9)>::blackOffset(),
00051 DirectionTraits<static_cast<Direction>(10)>::blackOffset(),
00052 DirectionTraits<static_cast<Direction>(11)>::blackOffset(),
00053 DirectionTraits<static_cast<Direction>(12)>::blackOffset(),
00054 DirectionTraits<static_cast<Direction>(13)>::blackOffset(),
00055 DirectionTraits<static_cast<Direction>(14)>::blackOffset(),
00056 DirectionTraits<static_cast<Direction>(15)>::blackOffset(),
00057 DirectionTraits<static_cast<Direction>(16)>::blackOffset(),
00058 DirectionTraits<static_cast<Direction>(17)>::blackOffset()
00059 } };
00060 const CArray<int,DIRECTION_SIZE> BoardTable::dxs = { {
00061 DirectionTraits<static_cast<Direction>(0)>::blackDx,
00062 DirectionTraits<static_cast<Direction>(1)>::blackDx,
00063 DirectionTraits<static_cast<Direction>(2)>::blackDx,
00064 DirectionTraits<static_cast<Direction>(3)>::blackDx,
00065 DirectionTraits<static_cast<Direction>(4)>::blackDx,
00066 DirectionTraits<static_cast<Direction>(5)>::blackDx,
00067 DirectionTraits<static_cast<Direction>(6)>::blackDx,
00068 DirectionTraits<static_cast<Direction>(7)>::blackDx,
00069 DirectionTraits<static_cast<Direction>(8)>::blackDx,
00070 DirectionTraits<static_cast<Direction>(9)>::blackDx,
00071 DirectionTraits<static_cast<Direction>(10)>::blackDx,
00072 DirectionTraits<static_cast<Direction>(11)>::blackDx,
00073 DirectionTraits<static_cast<Direction>(12)>::blackDx,
00074 DirectionTraits<static_cast<Direction>(13)>::blackDx,
00075 DirectionTraits<static_cast<Direction>(14)>::blackDx,
00076 DirectionTraits<static_cast<Direction>(15)>::blackDx,
00077 DirectionTraits<static_cast<Direction>(16)>::blackDx,
00078 DirectionTraits<static_cast<Direction>(17)>::blackDx
00079 } };
00080 const CArray<int,DIRECTION_SIZE> BoardTable::dys = { {
00081 DirectionTraits<static_cast<Direction>(0)>::blackDy,
00082 DirectionTraits<static_cast<Direction>(1)>::blackDy,
00083 DirectionTraits<static_cast<Direction>(2)>::blackDy,
00084 DirectionTraits<static_cast<Direction>(3)>::blackDy,
00085 DirectionTraits<static_cast<Direction>(4)>::blackDy,
00086 DirectionTraits<static_cast<Direction>(5)>::blackDy,
00087 DirectionTraits<static_cast<Direction>(6)>::blackDy,
00088 DirectionTraits<static_cast<Direction>(7)>::blackDy,
00089 DirectionTraits<static_cast<Direction>(8)>::blackDy,
00090 DirectionTraits<static_cast<Direction>(9)>::blackDy,
00091 DirectionTraits<static_cast<Direction>(10)>::blackDy,
00092 DirectionTraits<static_cast<Direction>(11)>::blackDy,
00093 DirectionTraits<static_cast<Direction>(12)>::blackDy,
00094 DirectionTraits<static_cast<Direction>(13)>::blackDy,
00095 DirectionTraits<static_cast<Direction>(14)>::blackDy,
00096 DirectionTraits<static_cast<Direction>(15)>::blackDy,
00097 DirectionTraits<static_cast<Direction>(16)>::blackDy,
00098 DirectionTraits<static_cast<Direction>(17)>::blackDy
00099 } };
00100 }
00101
00102 namespace osl
00103 {
00104 const PieceTable Piece_Table;
00105 const BoardTable Board_Table;
00106
00107 const PtypeTable Ptype_Table;
00108
00109 const effect::Liberty8Table effect::Liberty8_Table;
00110
00111 const eval::PtypeEvalTable eval::Ptype_Eval_Table;
00112 const hash::HashGenTable hash::Hash_Gen_Table;
00113
00114
00115 const move_generator::addeffect8::AddEffect8Table move_generator::Add_Effect8_Table;
00116
00117 #ifndef MINIMAL
00118 const effect::MoveSignatureTable effect::Move_Signature_Table;
00119 #endif
00120 const PathEncodingTable Path_Encoding_Table;
00121
00122 #ifndef MINIMAL
00123 const progress::PtypeProgressTable progress::Ptype_Progress_Table;
00124 #endif
00125
00126 const Centering3x3::Table Centering3x3::table;
00127 const Centering5x3::Table Centering5x3::table;
00128 const effect_util::Neighboring8Direct::Table Neighboring8Direct::table;
00129 const effect_util::Neighboring8Effect::Table Neighboring8Effect::table;
00130 const effect_util::SendOffPosition::Table effect_util::SendOffPosition::table;
00131
00132 const container::BoardMaskTable5x5 container::Board_Mask_Table5x5;
00133 const container::BoardMaskTable3x3 container::Board_Mask_Table3x3;
00134 const container::BoardMaskTable5x3Center container::Board_Mask_Table5x3_Center;
00135
00136 const checkmate::ImmediateCheckmateTable checkmate::Immediate_Checkmate_Table;
00137 const checkmate::ProofNumberTable checkmate::Proof_Number_Table;
00138 const checkmate::EdgeTable checkmate::Edge_Table;
00139 #ifndef MINIMAL
00140 const eval::ppair::PiecePairRawTable eval::ppair::PiecePairRawTable::Table;
00141 const eval::ppair::PiecePairPieceTable eval::ppair::PiecePairPieceTable::Table;
00142
00143 const eval::endgame::AttackKing::Table eval::endgame::AttackKing::table;
00144 const eval::endgame::DefenseKing::Table eval::endgame::DefenseKing::table;
00145 #endif
00146 const progress::Effect5x3Table progress::Effect5x3_Table;
00147 #ifndef MINIMAL
00148 const CArray<int, 9> eval::MobilityTable::rookVertical = { {
00149 -61,-43,-22,-9,-2,9,12,17,17,
00150 } };
00151
00152 const CArray<int, 9> eval::MobilityTable::rookHorizontal={{
00153 -72,-47,-18,4,10,28,21,27,27,
00154 }};
00155 const CArray<int, 9> eval::MobilityTable::prookVertical={{
00156 -45,-26,-17,-13,-1,1,10,8,8,
00157 }};
00158 const CArray<int, 9> eval::MobilityTable::prookHorizontal={{
00159 -35,-23,-16,-10,-4,4,11,12,12,
00160 }};
00161 const CArray<int, 17> eval::MobilityTable::bishop={{
00162 -60,-30,-6,2,4,8,10,12,
00163 12,13,15,17,19,21,23,25,27
00164 }};
00165 const CArray<int, 17> eval::MobilityTable::pbishop={{
00166 -39,-30,-9,-6,-2,2,0,5,
00167 13,15,17,19,21,23,25,27,29
00168 }};
00169 const CArray<int, 9> eval::MobilityTable::lance={{
00170 -10,-7,2,6,18,25,27,24,24
00171 }};
00172 #endif
00173 }
00174
00175
00176
00177
00178
00179