00001 /* positionCompressor.cc 00002 */ 00003 #include "osl/positionCompressor.h" 00004 #include "osl/position.h" 00005 #include <algorithm> 00006 namespace osl 00007 { 00008 CArray<signed char, Position::SIZE> PositionCompressor::positionToIndex; 00009 00010 struct PositionCompressor::Initializer 00011 { 00012 Initializer() 00013 { 00014 std::fill(positionToIndex.begin(), positionToIndex.end(), -1); 00015 00016 int cur = 0; 00017 positionToIndex[0] = cur++; 00018 for (int x=1; x<=9; ++x) 00019 { 00020 for (int y=1; y<=9; ++y) 00021 { 00022 positionToIndex[Position(x,y).index()] = cur++; 00023 } 00024 } 00025 assert(cur == 82); 00026 } 00027 }; 00028 00029 namespace 00030 { 00031 PositionCompressor::Initializer init; 00032 } // anonymous namespace 00033 } 00034 00035 /* ------------------------------------------------------------------------- */ 00036 // ;;; Local Variables: 00037 // ;;; mode:c++ 00038 // ;;; c-basic-offset:2 00039 // ;;; End: