Sudoku mit Backtracking lösen

azom

Mitglied
Hey meine lieben Freunde!

(kurzer Hinweis: ist für die Schule, will aber keinen vorgekauten Code, glaub ich steh grad bei der 90%-Marke auf der Leitung, hoffe desshalb auf das magische Paar zweite Augen)

Aufgabe ist, ein Sudoku-Feld(9x9) mit Hilfe des Backtracking-Algorithmus(rekursiv) zu lösen.

Derzeit zweifle ich jedoch ein wenig an daran, dass meine Überprüfung vollkommen funktioniert.

Java:
//Überprüfung der 9 3x3-Blöcke
//SudoCell ist nur ein Container zum leichteren Herrumreichen einer Zellenkoordinate.
private boolean checkBlock(SudoCell cell)
	{		
		int row=cell.getRow();
		int column=cell.getColumn();
			if(row<3){
				if(column<3){
					return blockContains(field.collectBlockCells(0, 0), cell);
				}
				else if(column>5){
					return blockContains(field.collectBlockCells(0, 6), cell);
				}
				else{
				return blockContains(field.collectBlockCells(0, 3), cell);
				}
			}
                //für die mittlere und die untere Blockreihe siehts ident aus, nur mit den Parameter
                //(3,x) bzw. (6,x).
}

public ArrayList<SudoCell> collectBlockCells(int startRow, int startColumn)
	{
		ArrayList<SudoCell> temp = new ArrayList<SudoCell>();
		
			for(int i=0; i<3; i++)
			{
				for(int n=0; n<3; n++)
				{
					temp.add(getCell(i+startRow,n+startColumn));
				}
			}
		//printCellList(temp);
		return temp;
	}

private boolean blockContains(ArrayList<SudoCell> cells, SudoCell cell)
	{		
			for(SudoCell c:cells)
			{
				if(cell.getValue()==c.getValue())
				{
					if(cell.getId()!=c.getId())
					{
						return false;
					}
				}
			}
		return true;
	}

private boolean checkLines(SudoCell cell)
	{
		int row=cell.getRow();
		int column=cell.getColumn();
		SudoCell temp;
		
			for(int i=0; i<9; i++)
			{
				temp=field.getCell(i, column);
				
					if(temp.getValue()==cell.getValue())
					{
						if(temp.getId()!=cell.getId())
						{
							return false;
						}
					}
					
				temp=field.getCell(row, i);
					
					if(temp.getValue()==cell.getValue())
					{
						if(temp.getId()!=cell.getId())
						{
							return false;
						}
					}
			}
			
		return true;
	}

Bei Unklarheiten beanworte ich gerne alles oder liefere weiteren Code. (erscheint mir nur schon ein wenig viel zum mal schnell drüberfliegen)

Bin für jede Anregung sehr Dankbar!
-Thomas
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Sudoku lösen mit Backtracking Java Basics - Anfänger-Themen 20
L Sudoku Backtracking Pseudocode Java Basics - Anfänger-Themen 3
X Sudoku Backtracking Java Basics - Anfänger-Themen 6
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
B Sudoku prüfen Java Basics - Anfänger-Themen 13
S GUI-Programmierung Sudoku-Rätsel lösen Java Basics - Anfänger-Themen 1
J Sudoku mehrere Lösungen Java Basics - Anfänger-Themen 29
J Sudoku Blocküberprüfung Java Basics - Anfänger-Themen 9
S Sudoku Checker Frage Java Basics - Anfänger-Themen 1
G Sudoku Java Basics - Anfänger-Themen 3
S Methoden Java Sudoku Solver Java Basics - Anfänger-Themen 2
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
L Sudoku Löser Java Basics - Anfänger-Themen 9
V Sudoku-Solver Probleme bei der Fehlerbehandlung Java Basics - Anfänger-Themen 12
H Unterquadrate bei Sudoku füllen Java Basics - Anfänger-Themen 9
M Sudoku-Löser: Fragen zu Pointer und Rekursion Java Basics - Anfänger-Themen 15
S Bisschen hilfe beim Sudoku Lösen benötigt Java Basics - Anfänger-Themen 7
S Sudoku hilfe Java Basics - Anfänger-Themen 4
M Sudoku Rekursiv lösen Java Basics - Anfänger-Themen 9
N Sudoku/BLocküberprüfung Java Basics - Anfänger-Themen 24
F Sudoku Grid zeichnen Java Basics - Anfänger-Themen 2
C Frage zu Sudoku Java Basics - Anfänger-Themen 20
MEETyA NullPointer Exception - Sudoku Java Basics - Anfänger-Themen 2
J Sudoku-ähnliche Aufgabe Java Basics - Anfänger-Themen 3
G Sudoku rekursiv lösen Java Basics - Anfänger-Themen 10
Antoras Sudoku Java Basics - Anfänger-Themen 3
F sudoku generieren Java Basics - Anfänger-Themen 16
B Sudoku! Java Basics - Anfänger-Themen 26
Max246Sch 3D Box Filler BAcktracking Java Basics - Anfänger-Themen 1
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
districon Backtracking Java Basics - Anfänger-Themen 2
districon Backtracking Java Basics - Anfänger-Themen 14
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
districon Backtracking funktioniert nicht ganz Java Basics - Anfänger-Themen 3
V Backtracking und Rekursion Java Basics - Anfänger-Themen 15
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
O Backtracking Java Basics - Anfänger-Themen 5
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
A Backtracking Java Basics - Anfänger-Themen 56
R Backtracking Java Basics - Anfänger-Themen 1
V Feld sortieren mit Backtracking Java Basics - Anfänger-Themen 1
N Backtracking - Labyrinth/Irrgarten Java Basics - Anfänger-Themen 14
I Backtracking Schach Java Basics - Anfänger-Themen 5
L Magisches Quadrat und Backtracking Java Basics - Anfänger-Themen 19
M Backtracking/Solve Methode Java Basics - Anfänger-Themen 7
P Labyrinth, Backtracking, verzögerte Anzeige Java Basics - Anfänger-Themen 15
E backtracking und Induktionsprinzip Java Basics - Anfänger-Themen 2
D Backtracking Waage Problem Java Basics - Anfänger-Themen 23
N Backtracking Solohalma Java Basics - Anfänger-Themen 2
W Backtracking und Frustration Java Basics - Anfänger-Themen 6
J Solitaire via Backtracking Java Basics - Anfänger-Themen 7
A Backtracking - kennt Java keine Rücksprungmarken? Java Basics - Anfänger-Themen 15
G Backtracking mit globaler Variable Java Basics - Anfänger-Themen 5
M BackTracking Java Basics - Anfänger-Themen 22
J Backtracking Algorithmus Java Basics - Anfänger-Themen 16
Alen123 Wie würdet ihr diese Aufgabenstellung lösen? Java Basics - Anfänger-Themen 18
L Symbo Rätsel lösen lassen Java Basics - Anfänger-Themen 3
J Array eintrag mit möglichst wenig code lösen Java Basics - Anfänger-Themen 16
T Rekursionsaufgabe lösen Java Basics - Anfänger-Themen 6
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
B Türme von Hanoi mit einer beliebigen aber gültigen Eingabe lösen Java Basics - Anfänger-Themen 5
N Denksportaufgabe durch Algorithmus lösen Java Basics - Anfänger-Themen 2
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
B Wie könnte man mit Java diese Matheaufgabe lösen Java Basics - Anfänger-Themen 7
kilopack15 Sin(x) rekursiv lösen Java Basics - Anfänger-Themen 17
S Lineare Gleichung lösen Java Basics - Anfänger-Themen 1
A instanceof-if-else-Anweisungen eleganter lösen Java Basics - Anfänger-Themen 5
N Von Kopf bis Fuss TestArrays lässt sich nicht lösen Java Basics - Anfänger-Themen 5
L NullPointerException lösen Java Basics - Anfänger-Themen 6
R Hanoi rekursiv lösen Problem Java Basics - Anfänger-Themen 1
C Gleichung mit Potenz mit einer Unbekannten lösen Java Basics - Anfänger-Themen 5
B Quadratische Gleichung mit JAVA lösen Java Basics - Anfänger-Themen 5
I Fragen bzw. Aufgabe lösen Java Basics - Anfänger-Themen 4
C Differenz-Methode mit Array lösen Java Basics - Anfänger-Themen 14
M Gibt es eine einfachere Variante diese Aufgabenstellung zu lösen? Java Basics - Anfänger-Themen 11
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
G methode lösen Java Basics - Anfänger-Themen 5
I Lineare Gleichungssysteme lösen -> Problem Java Basics - Anfänger-Themen 3
G (csv)Datei lesen FindBug findet mgl. NullPointer - wie lösen Java Basics - Anfänger-Themen 3
K Lösen einer Gleichung Java Basics - Anfänger-Themen 12
V wie kann man das lösen ? Java Basics - Anfänger-Themen 3
lumo lösen von: "Type safety"? Java Basics - Anfänger-Themen 4
J Mit welchem LayoutManager Problem lösen? Java Basics - Anfänger-Themen 2
A Übungsaufgabe lösen - Problem mit true und false Java Basics - Anfänger-Themen 6
J Lösen linearer Gleichungen Java Basics - Anfänger-Themen 3
N Ist dieses Problem mit Java zu lösen? Java Basics - Anfänger-Themen 7
P wait und notify oder wie soll ich es lösen Java Basics - Anfänger-Themen 2
H [req] wer kann mir helfen die aufgabe zu lösen? Java Basics - Anfänger-Themen 2
F Kann ein Problem bei Anweisungen nicht lösen Java Basics - Anfänger-Themen 4
G Aufgabe: Kann sie nicht lösen Java Basics - Anfänger-Themen 12
G quadratische Gleichung lösen Java Basics - Anfänger-Themen 2
I gleichung lösen Java Basics - Anfänger-Themen 4
S Gleichungssystem lösen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben