Removed ISolver since we are not implementing different solvers.

Corrected GameController listening to GameCells.
This commit is contained in:
Christopher Beckmann 2015-11-19 14:31:18 +01:00
parent 8089adf862
commit 643c45070f
6 changed files with 28 additions and 36 deletions

View file

@ -6,6 +6,7 @@ import android.content.SharedPreferences;
import java.util.LinkedList;
import java.util.List;
import tu_darmstadt.sudoku.controller.generator.Generator;
import tu_darmstadt.sudoku.game.CellConflict;
import tu_darmstadt.sudoku.game.CellConflictList;
import tu_darmstadt.sudoku.game.GameBoard;
@ -15,7 +16,6 @@ import tu_darmstadt.sudoku.game.GameDifficulty;
import tu_darmstadt.sudoku.game.GameType;
import tu_darmstadt.sudoku.game.ICellAction;
import tu_darmstadt.sudoku.game.IModelChangedListener;
import tu_darmstadt.sudoku.game.solver.Solver;
/**
* Created by Chris on 06.11.2015.
@ -50,7 +50,8 @@ public class GameController implements IModelChangedListener {
public GameController(GameType type, SharedPreferences pref) {
setGameType(type);
gameBoard = new GameBoard(size, sectionHeight, sectionWidth);
gameBoard = new GameBoard(type);
gameBoard.registerOnModelChangeListener(this);
setSettings(pref);
}
@ -59,6 +60,9 @@ public class GameController implements IModelChangedListener {
}
public void loadNewLevel(GameType type, int difficulty) {
Generator generator = new Generator();
// TODO call methods to generate level.
switch(type) {
case Default_6x6:
loadLevel(new GameInfoContainer(1, GameDifficulty.Easy, GameType.Default_6x6,
@ -109,7 +113,7 @@ public class GameController implements IModelChangedListener {
this.gameID = gic.getID();
setGameType(gic.getGameType());
this.gameBoard = new GameBoard(size, sectionHeight, sectionWidth);
this.gameBoard = new GameBoard(gic.getGameType());
if(fixedValues == null) throw new IllegalArgumentException("fixedValues may not be null.");
@ -136,6 +140,9 @@ public class GameController implements IModelChangedListener {
}
}
}
// call the solve function to get the solution of this board
solve();
}
public void setSettings(SharedPreferences pref) {
@ -143,17 +150,9 @@ public class GameController implements IModelChangedListener {
}
public LinkedList<GameBoard> solve() {
// TODO call solve at the beginning.. when loading a level.
if(solvedBoards.size() == 0) {
switch (gameType) {
case Default_9x9:
case Default_6x6:
case Default_12x12:
solver = new Solver(gameBoard);
break;
default:
throw new UnsupportedOperationException("No Solver for this GameType defined.");
}
if (solver.solve(solver.getGameBoard())) {
solvedBoards.addAll(solver.getSolutions());

View file

@ -1,4 +1,4 @@
package tu_darmstadt.sudoku.game.solver;
package tu_darmstadt.sudoku.controller;
import android.graphics.Point;
import android.util.Log;
@ -15,7 +15,7 @@ import tu_darmstadt.sudoku.game.ICellAction;
/**
* Created by Chris on 10.11.2015.
*/
public class Solver implements ISolver {
public class Solver {
private GameBoard gameBoard = null;
private LinkedList<GameBoard> solutions = new LinkedList<>();
@ -152,7 +152,6 @@ public class Solver implements ISolver {
return result;
}
@Override
public boolean calculateNextPossibleStep() {
return false;

View file

@ -0,0 +1,8 @@
package tu_darmstadt.sudoku.controller.generator;
/**
* Created by Chris on 19.11.2015.
*/
public class Generator {
}

View file

@ -17,10 +17,11 @@ public class GameBoard implements Cloneable {
private GameCell[][] field;
private List<IModelChangedListener> modelChangedListeners = new LinkedList<>();
public GameBoard(int size, int sectionHeight, int sectionWidth) {
this.sectionHeight = sectionHeight;
this.sectionWidth = sectionWidth;
this.size = size;
public GameBoard(GameType gameType) {
this.gameType = gameType;
this.sectionHeight = gameType.getSectionHeight();
this.sectionWidth = gameType.getSectionWidth();
this.size = gameType.getSize();
field = new GameCell[size][size];
}

View file

@ -1,16 +0,0 @@
package tu_darmstadt.sudoku.game.solver;
import tu_darmstadt.sudoku.game.GameBoard;
/**
* Created by Chris on 11.11.2015.
*/
public interface ISolver {
public boolean solve(GameBoard gameBoard);
public boolean calculateNextPossibleStep();
public GameBoard getGameBoard();
}

View file

@ -12,6 +12,7 @@ import android.widget.RelativeLayout;
import tu_darmstadt.sudoku.game.GameCell;
import tu_darmstadt.sudoku.controller.Symbol;
import tu_darmstadt.sudoku.game.IModelChangedListener;
/**
* Created by TMZ_LToP on 10.11.2015.