squareCompressor.cc
Go to the documentation of this file.
00001 /* squareCompressor.cc
00002  */
00003 #include "osl/squareCompressor.h"
00004 #include "osl/square.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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines