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