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/addEffectTable.h"
00008 #include "osl/move_generator/addEffect8Table.h"
00009 #include "osl/progress/ptypeProgress.h"
00010 #include "osl/progress/effect5x3Table.h"
00011 #include "osl/pathEncoding.h"
00012 #include "osl/effect/moveSignature.h"
00013
00014 #include "osl/centering3x3.h"
00015 #include "osl/centering5x3.h"
00016 #include "osl/effect_util/neighboring8Direct.h"
00017 #include "osl/effect_util/neighboring8Effect.h"
00018 #include "osl/effect_util/sendOffPosition.h"
00019
00020 #include "osl/checkmate/immediateCheckmateTable.h"
00021 #include "osl/checkmate/proofNumberTable.h"
00022
00023 #include "osl/rating/featureSet.h"
00024
00025 #include "osl/eval/pieceEval.h"
00026 #include "osl/eval/ppair/piecePairRawEval.h"
00027 #include "osl/eval/ppair/piecePairPieceEval.h"
00028 #include "osl/eval/endgame/attackKing.h"
00029 #include "osl/eval/endgame/defenseKing.h"
00030 #include "osl/eval/mobilityTable.h"
00031
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 const move_generator::AddEffectTable move_generator::Add_Effect_Table;
00115
00116 const move_generator::AddEffect8Table move_generator::Add_Effect8_Table;
00117
00118 const effect::MoveSignatureTable effect::Move_Signature_Table;
00119 const PathEncodingTable Path_Encoding_Table;
00120
00121 const progress::PtypeProgressTable progress::Ptype_Progress_Table;
00122
00123 const Centering3x3::Table Centering3x3::table;
00124 const Centering5x3::Table Centering5x3::table;
00125 const effect_util::Neighboring8Direct::Table Neighboring8Direct::table;
00126 const effect_util::Neighboring8Effect::Table Neighboring8Effect::table;
00127 const effect_util::SendOffPosition::Table effect_util::SendOffPosition::table;
00128
00129 const checkmate::ImmediateCheckmateTable checkmate::Immediate_Checkmate_Table;
00130 const checkmate::ProofNumberTable checkmate::Proof_Number_Table;
00131
00132 const eval::ppair::PiecePairRawTable eval::ppair::PiecePairRawTable::Table;
00133 const eval::ppair::PiecePairPieceTable eval::ppair::PiecePairPieceTable::Table;
00134
00135 const eval::endgame::AttackKing::Table eval::endgame::AttackKing::table;
00136 const eval::endgame::DefenseKing::Table eval::endgame::DefenseKing::table;
00137
00138 const progress::Effect5x3Table progress::Effect5x3_Table;
00139 const CArray<int, 9> eval::MobilityTable::rookVertical = { {
00140 -61,-43,-22,-9,-2,9,12,17,17,
00141 } };
00142 const CArray<int, 9> eval::MobilityTable::rookHorizontal={{
00143 -72,-47,-18,4,10,28,21,27,27,
00144 }};
00145 const CArray<int, 9> eval::MobilityTable::prookVertical={{
00146 -45,-26,-17,-13,-1,1,10,8,8,
00147 }};
00148 const CArray<int, 9> eval::MobilityTable::prookHorizontal={{
00149 -35,-23,-16,-10,-4,4,11,12,12,
00150 }};
00151 const CArray<int, 17> eval::MobilityTable::bishop={{
00152 -60,-30,-6,2,4,8,10,12,
00153 12,13,15,17,19,21,23,25,27
00154 }};
00155 const CArray<int, 17> eval::MobilityTable::pbishop={{
00156 -39,-30,-9,-6,-2,2,0,5,
00157 13,15,17,19,21,23,25,27,29
00158 }};
00159 const CArray<int, 9> eval::MobilityTable::lance={{
00160 -10,-7,2,6,18,25,27,24,24
00161 }};
00162 }
00163
00164
00165
00166
00167
00168