AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Java + Sudoku Algorithmus

Ein Thema von Christian18 · begonnen am 13. Dez 2008 · letzter Beitrag vom 14. Dez 2008
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Java + Sudoku Algorithmus

  Alt 13. Dez 2008, 10:45
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:
    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);
    }
Vieleicht könnt ihr mir helfen.

LG Christian
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#2

Re: Java + Sudoku Algorithmus

  Alt 13. Dez 2008, 14:03
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
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

Re: Java + Sudoku Algorithmus

  Alt 14. Dez 2008, 17:49
Hallo,

ist evtl. doch das falsche Forum oder? Kennt jemand denn ein aktives Java Forum?

LG Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz