#include "sudoku.h"

bool Sudoku::check(int x, int y, char number) const {
  bool retvalue=true;
  int i=0,bi=3*(x/3),bj=3*(y/3);
  while (i<LENGTH && retvalue==true) {
    if (at(x,i)==number || at(i,y)==number || at(bi+i%3,bj+i/3)==number)
      retvalue=false;
    i++;
  }
  return retvalue;
}

bool Sudoku::nextfree(int& x, int& y) {
  bool retvalue=true;
  int i=0;
  while (i<SQUARE && square[i]!=EMPTY)
    i++;
  if (i!=SQUARE) {
    y=i/LENGTH;
    x=i%LENGTH;
  } else
    retvalue=false;
  return retvalue;
}
