From cd792a0f8a194bcb2f3c8f919b5efa54ee9fa8a8 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Wed, 29 Jan 2025 15:48:01 +0100 Subject: [PATCH] add diagonal constraint --- .../sudoku/constraint/DiagonalConstraint.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/src/main/java/sudoku/constraint/DiagonalConstraint.java diff --git a/app/src/main/java/sudoku/constraint/DiagonalConstraint.java b/app/src/main/java/sudoku/constraint/DiagonalConstraint.java new file mode 100644 index 0000000..63f9ad6 --- /dev/null +++ b/app/src/main/java/sudoku/constraint/DiagonalConstraint.java @@ -0,0 +1,24 @@ +package sudoku.constraint; + +import sudoku.structure.Sudoku; + +public class DiagonalConstraint implements IConstraint { + + @Override + public boolean canBePlaced(Sudoku s, int x, int y, int newSymbolIndex) { + if (x == y) { + for (int i = 0; i < s.getSize(); i++) { + if (s.getCell(i, i).getSymbolIndex() == newSymbolIndex) + return false; + } + } else if (s.getSize() - x == y) { + for (int i = 0; i < s.getSize(); i++) { + if (s.getCell(s.getSize() - i, i).getSymbolIndex() == newSymbolIndex) + return false; + } + } + // not in diagonal + return true; + } + +}