Ejemplo n.º 1
0
  @Override
  public SudokoDTO successiveMoves(SudokoDTO sudoko) {

    Board sudokoBoard = getSudokoBoardById(sudoko.getId());
    if (sudokoBoard == null) {
      throw new SudokoBoardNotFoundException(sudoko.getId());
    }

    if (sudokoBoard.getHavingSolution()) {
      if (sudoko.getCellValue()
          == sudokoBoard.getValueInSolutionArray(sudoko.getRow(), sudoko.getColumn())) {
        sudoko.setIsValidMove(Boolean.TRUE);
        sudokoBoard.logUserMovies(sudoko.getRow(), sudoko.getColumn(), sudoko.getCellValue());
        if (sudokoBoard.isGameFinished()) {
          sudoko.setIsSudokoFinished(Boolean.TRUE);
        }
      } else {
        sudoko.setIsValidMove(Boolean.FALSE);
      }
    }
    return sudoko;
  }