# include <Square.h>
# include <cassert>
using namespace Alice;

int main(void)
{
  for (int i = 0; i < 8; i++)
    {
      for (int j = 0; j < 8; j++)
	{
	  Square sq(i,j);
	  std::cout<<(int)sq.number()<<" ";
	}
      std::cout<<std::endl;
    }
  std::cout<<std::endl;
  const std::vector<Square>& squares= Square::allInstances();
  for (Square::SquareIterator it = squares.begin();
       it != squares.end(); ++ it)
    {
      std::cout<<(int)it->number()<<" ";
      assert((it->number()&0x88) == 0);
      assert(it->isValid());
    }
  std::cout<<std::endl;
  std::cout<<(int)Square::invalid().number()<<std::endl;
  return 0;
};
