p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #ffffff; min-height: 14.0px}p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff; min-height: 13.0px}p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12f1b; background-color: #ffffff}p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ba2da2; background-color: #ffffff}span.s1 {color: #ba2da2}span.s2 {color: #272ad8}span.s3 {color: #d12f1b}span.s4 {color: #000000}span.s5 {color: #008400}package sudoku;import java.util.Arrays;public class SudokuModel { private static final int BOARD_SIZE = 9; private static final int SUBSQUARE = 3; private int _board; public SudokuModel() { _board = new intBOARD_SIZEBOARD_SIZE; } public SudokuModel(String initialBoard) { this(); } public void initializeFromString(final String boardStr) { clear(); int row = 0; int col = 0; int boardLength = BOARD_SIZE*BOARD_SIZE; for (int i = 0; i < boardLength; i++) { char c = boardStr.charAt(i); if (c >= ‘1’ && c <='9') { if (row > BOARD_SIZE || col > BOARD_SIZE) { throw new IllegalArgumentException(“SudokuModel: ” + ” Attempt to initialize outside 1-9 ” + ” at row ” + (row+1) + ” and col ” + (col+1)); } _boardrowcol = c – ‘0’; col++; } else if (c == ‘.’) { col++; } else if (c == ‘/’) { row++; col = 0; } else { throw new IllegalArgumentException(“SudokuModel: Character ‘” + c + “‘ not allowed in board specification”); } } } public boolean isLegalMove(int row, int col, int val) { return row>=0 && row