private boolean boardIsOK()
  {
//    printBoard();
    for (int i=0; i < boardWidth; i++)
    {
//      System.out.println("Looking at row " + i);
      if (!setIsOK(getRow(i)))
      {
//        System.out.println("Row is not OK");
        return false;
      }
//      System.out.println("Looking at col " + i);
      if (!setIsOK(getCol(i)))
      {
//        System.out.println("Col is not OK");
        return false;
      }
    }
    for (int x=0; x < boardSegs; x++)
    {
      for (int y=0; y < boardSegs; y++)
      {
//        System.out.println("Looking at block (" + x + ", " + y + ")");
        if (!areaIsOK(getSquare(x,y)))
        {
//          System.out.println("Area is not OK");
          return false;
        }
      }
    }
    return true;
  }