![]() |
Java + Sudoku Algorithmus
Hallo,
da ich kein aktives Forum für Java kenne, wollte ich es mal hier probieren. Ich denke das mein Problem auch nichts mit Java direkt zu tun hat. Mein Problem ist mehr der Algorithmus. Ich will einen Algorithmus schreiben, womit ich eine Sudoku Matrix in meinem zweidimensionalen Array erzeugen kann. Dazu möchte ich eine Klasse schreiben. Es gibt drei Methode die ich unbedingt verwenden muss: 1. public boolean checkRows(int[][] pSudokuMatrix) // Prüft, ob die Reihen den Spielregeln entsprechen 2. public boolean checkColumns(int[][] pSudokuMatrix) // Prüft, ob die Spalten den Spielregeln entsprechen 3. public boolean checkBlocks(int[][] pSudokuMatrix) // Prüft, ob die Blöcke den Spielregeln entsprechen Nun zum Algorithmus, den ich verwenden soll! Beginnend in der ersten Zeile, soll eine Zufallszahl erzeugt werden. Wenn die erzeugt Zufallszahl zwischen 1 und 9 den Regln entspricht, dann kann die erste Zahl eingetragen werden. Dann geht es mit der zweiten Zahl der ersten Reihe weiter. Das wird solange gemacht, bis die erste Reihe voll ist. Dann geht es zur zweiten Reihe. Das wird wieder solange bemacht, bis alle Reihen voll sind. Ich glaube, dass ich den Algorithmus ganz gut imlementiert habe. Jedoch funktioniert er mal und mal nicht. Hier mein Code:
Code:
Vieleicht könnt ihr mir helfen.
public void generateSudokuMatrix() {
Random random = new Random();// Erzeugt ein Objekt der Klasse Random int[][] temp = new int[size * size][size * size];// size hat den Wert 3 und temp ist ein zweidimensionales Array int x;// Schleifenvariable int y;// Schleifenvariable y = 0; do { x = 0; do { temp[x][y] = random.nextInt(size * size) + 1;// Zufallszahl von 1 - 9 erzeugen if(checkRows(temp) && checkColumns(temp) && checkBlocks(temp)) { sudoku = temp; // Sudoku ist auch ein zweidimensionales Array x++; } else { temp[x][y] = 0; } }while(x != size * size); y++; }while(y != size * size); } LG Christian |
Re: Java + Sudoku Algorithmus
Hallo,
ich bin nochmal. Ich glaube es liegt an der Zufallszahl. Kann ja sein, dass die zufallszahl nie die wird, die er braucht oder? Obwohl, wie ich ist die Wahrscheinlichkeit, dass die zufallszahl nicht kommt. Spätestens bei 100 durchläufen müsste ja von 1-9 jede min. einmal gefallen sein. Mhhh... Der Algo ist vieleicht nicht der schnellste, sollte doch aber funktionieren oder? LG Chris |
Re: Java + Sudoku Algorithmus
Hallo,
ist evtl. doch das falsche Forum oder? Kennt jemand denn ein aktives Java Forum? LG Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz