From d849f3afc43088a796372bdde976a162ebcdd82c Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Fri, 10 Jan 2025 16:30:25 +0100 Subject: [PATCH] mutable and immutable cells --- app/src/main/java/sudoku/Cell.java | 16 +++-------- app/src/main/java/sudoku/ImmutableCell.java | 9 ++++++ app/src/main/java/sudoku/MutableCell.java | 32 +++++++++++++++++++++ app/src/main/java/sudoku/SudokuFactory.java | 2 +- 4 files changed, 46 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/sudoku/ImmutableCell.java create mode 100644 app/src/main/java/sudoku/MutableCell.java diff --git a/app/src/main/java/sudoku/Cell.java b/app/src/main/java/sudoku/Cell.java index 36d9d3b..c7088a4 100644 --- a/app/src/main/java/sudoku/Cell.java +++ b/app/src/main/java/sudoku/Cell.java @@ -1,10 +1,10 @@ package sudoku; -public class Cell { +public abstract class Cell { - private static int NOSYMBOLE = -1; - private int symboleIndex; - private Block block = null; + protected static int NOSYMBOLE = -1; + protected int symboleIndex; + protected Block block = null; public Cell(int symboleIndex) { this.symboleIndex = symboleIndex; @@ -21,14 +21,6 @@ public class Cell { return symboleIndex; } - public void setSymboleIndex(int symboleIndex) { - this.symboleIndex = symboleIndex; - } - - public void clear() { - setSymboleIndex(NOSYMBOLE); - } - public Block getBlock() { return this.block; } diff --git a/app/src/main/java/sudoku/ImmutableCell.java b/app/src/main/java/sudoku/ImmutableCell.java new file mode 100644 index 0000000..828c4b1 --- /dev/null +++ b/app/src/main/java/sudoku/ImmutableCell.java @@ -0,0 +1,9 @@ +package sudoku; + +public class ImmutableCell extends Cell { + + public ImmutableCell(int symboleIndex) { + super(symboleIndex); + } + +} diff --git a/app/src/main/java/sudoku/MutableCell.java b/app/src/main/java/sudoku/MutableCell.java new file mode 100644 index 0000000..b6f88ae --- /dev/null +++ b/app/src/main/java/sudoku/MutableCell.java @@ -0,0 +1,32 @@ +package sudoku; + +import java.util.ArrayList; +import java.util.List; + +public class MutableCell extends Cell{ + + private final List hintsSymbolIndex; + + public MutableCell() { + super(); + this.hintsSymbolIndex = new ArrayList<>(); + } + + public MutableCell(int symboleIndex) { + super(symboleIndex); + this.hintsSymbolIndex = new ArrayList<>(); + } + + public void setSymboleIndex(int symboleIndex) { + this.symboleIndex = symboleIndex; + } + + public void clear() { + setSymboleIndex(NOSYMBOLE); + } + + public List getHints() { + return this.hintsSymbolIndex; + } + +} diff --git a/app/src/main/java/sudoku/SudokuFactory.java b/app/src/main/java/sudoku/SudokuFactory.java index 644b9b2..dde6f27 100644 --- a/app/src/main/java/sudoku/SudokuFactory.java +++ b/app/src/main/java/sudoku/SudokuFactory.java @@ -8,7 +8,7 @@ public class SudokuFactory { private static List initCells(int size) { List cells = new ArrayList<>(size * size); for (int i = 0; i < size * size; i++) { - cells.add(new Cell()); + cells.add(new MutableCell()); } return cells; }