1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. Aurelius84

Beiträge von Aurelius84

  • Wie würdet ihr ein Sudoku schreiben/lösen?

    • Aurelius84
    • 7. Februar 2006 um 03:26

    ich glaub ich hab das problem gefunden. ich hab bei wiki was gesehn und das passt gar nich zu dem was ich mach. ich hab zwar in jeder zeile und jeder spalte immer nur eine zahl von 1 bis 9 und das mit den blocks passt auch aber naja is kein lösbares sudoku. dumme sache.

  • Wie würdet ihr ein Sudoku schreiben/lösen?

    • Aurelius84
    • 7. Februar 2006 um 00:38

    hallo habe versucht einen sudoku generator zu schrieben aber die sind meist nicht lösbar. kann mal bitte einer schaun was ich vergessen hab. bin nen java noob und mach es erst seit 4 monaten also sry wenn was nich ganz korrekt is

    Zitat

    package Sudoku;

    import java.util.*;

    class Generate {
    static int board[][] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 } };

    public static void printBoard(int[][] board) {
    for (int i = 0; i < 9; i++) {
    for (int j = 0; j < 9; j++)
    if (board[i][j] != 0)
    System.out.print(board[i][j] + " ");
    else
    System.out.print(". ");
    System.out.println();
    }
    System.out.println();
    }
    public static void generateBoard(int[][] board) {
    for (int index = 0; index <= 32; index++) {
    Random zeile = new Random();
    Random spalte = new Random();
    Random r = new Random();
    int i = Math.abs(zeile.nextInt()) % 9;
    int j = Math.abs(spalte.nextInt()) % 9;
    int zzahl = 1+ Math.abs(r.nextInt()) % 9; // Zufallszahl die
    // hinzugefügt werden soll

    // (blockTest(board, i, j, zzahl) == true) &&
    if (board[i][j] == 0) {
    if ((blockTest(board, i, j, zzahl) == true) &&(zeilenTest(board, i, zzahl) == true)
    && (spaltenTest(board, j, zzahl) == true))
    board[i][j] = zzahl;
    } else
    index = index - 1;

    }

    }

    /**
    *
    * @param zeile
    * ist der Zeilenindex vom Feld [zeile][spalte]
    * @param zahl
    * ist die zahl die dem Feld hinzugefügt werden soll
    *
    */
    public static boolean zeilenTest(int[][] board, int zeile, int zahl) {

    for (int i = 0; i < 9; i++) {
    if (board[zeile][i] == zahl) {
    return false;
    }
    }
    return true;

    }

    /**
    *
    * @param spalte
    * ist der Spaltenindex vom Feld [zeile][spalte]
    * @param zahl
    * ist die zahl die dem Feld hinzugefügt werden soll
    *
    */
    public static boolean spaltenTest(int[][] board, int spalte, int zahl) {
    for (int i = 0; i < 9; i++) {
    if (board[i][spalte] == zahl) {
    return false;
    }
    }
    return true;

    }
    /**
    *
    * @param x ist der Zeilen index vom Feld [zindex][sindex]
    * @param y ist der Zeilen index vom Feld [zindex][sindex]
    * @param zahl ist die zahl die dem Feld hinzugefügt werden soll
    *
    */
    public static boolean blockTest(int[][] board, int x,int y,int zahl){
    int tmpx = x - (x%3);
    int tmpy = y - (y%3);

    for(int i = tmpx ; i < tmpx+3 ; i++){
    for(int j = tmpy ; j < tmpy+3 ; j++){
    if(board[i][j] == zahl)

    return false;
    }
    }
    return true;
    }


    /**
    * @param args
    */
    public static void main(String args[]) {
    generateBoard(board);
    printBoard(board);
    }
    }

    Alles anzeigen

Rechtliches

Impressum

Datenschutzerklärung