Sudoku Kommandozeile

Robat

Top Contributor
Ich glaube eine "einfache" Variante gibt es da nicht..
Eine Möglichkeit wäre es Spalten mit einem Komma zu trennen und Zeilen mit einem Semikolon. Leere Felder kannst du mit irgendeinem beliebigen Zeichen oder sonstigem angeben.
Code:
java -jar sodoku.java 0,1,2,#,5,#,#,8,9,4;#,4,0,2,1,...
 

Tobse

Top Contributor
Solange es nur Zahlen von 1 bis 9 sind kannst du sie auch einfach aneinanderreihen. Das ist am einfachsten einzugeben wenn man ein Sudoku vom Blatt eingibt. 0 für leer tut's auch:

0001040780304005011030409806704...
 

Robat

Top Contributor
Wo ist der Unterschied?
Das Eingabeformat bleibt das selbe.
Ob du es nun als Argument beim Ausführen des Programms eingibst oder während das Programm läuft ist doch egal.
 

Java xyrse123

Bekanntes Mitglied
Ich habe das jetzt so versucht:
Code:
int Matrix[][]=new int[8][8];
        Scanner sc = new Scanner(System.in);
        int eingabe =sc.nextInt();
        for(int m=0; m<Matrix.length; m++) {
            for(int n=0; n<Matrix.length; n++) {
               
                Matrix[m][n]=eingabe;
            }
        }
Dann kommt aber eine Exception: Exception in thread "main" java.util.InputMismatchException. Und den Zeilenwechsel bekomme ich auch nicht hin.
 

truesoul

Top Contributor
Hallo.

Also die Eingabe würde kein InputMismatchException verursachen.
Zudem fragst du nur einmal nach einer Eingabe.

Und dann fühlst du das Array mit dieser Eingabe. Also es steht im ganzen Array 123456789.

Im Stacktrace steht in welcher Zeile der Fehler auftritt.

Grüße
 

TheWhiteShadow

Bekanntes Mitglied
Wenn du alle Ziffern am Stück einlesen willst, musst du beim Scanner next() benutzen, dann den String aufsplitten und erst dann in Zahlen umwandeln. 81 Ziffern sind zu lang für ein int.
Außerdem ist deine Matrix zu klein. Beim initialisieren musst du die Länge angeben, also 9.
 

Java xyrse123

Bekanntes Mitglied
Ich habe das jetzt so gemacht:
Java:
int Matrix[][] = new int[9][9];
        Scanner sc = new Scanner(System.in); // Scanner zur Eingabe       
        for (int m = 0; m < 9; m++) {
            String eingabe = sc.nextLine();
            for (int n = 0; n < 9; n++) {

                Matrix[m][n] = eingabe.charAt(n) - '0'; 
            }
        }
Hat vielleicht noch jemand Verbesserungsvorschläge?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Sudoku generieren Schwierigkeitsgrad Allgemeine Java-Themen 3
J Sudoku Löser Allgemeine Java-Themen 10
B Sudoku-Block-Prüfung Allgemeine Java-Themen 1
B Sudoku-Überprüfer Allgemeine Java-Themen 1
K Sudoku-Solver - Backtracking Allgemeine Java-Themen 2
F Sudoku-Löser Allgemeine Java-Themen 6
E Threads Sudoku Threads Allgemeine Java-Themen 8
J Laufzeitberechnung - Sudoku Backtracking Allgemeine Java-Themen 7
F rekursiver Aufruf (Sudoku und Guice) Allgemeine Java-Themen 19
A Sudoku mittels Backtracking Problem Allgemeine Java-Themen 6
J Swing Sudoku GUI - Problem mit MaskFormatter Allgemeine Java-Themen 4
truesoul Sudoku programmieren Allgemeine Java-Themen 23
C Sudoku und KeyListener Allgemeine Java-Themen 2
M Problem bei Sudoku Allgemeine Java-Themen 21
V Strings aus externen Dateien Einlesen (Sudoku) Allgemeine Java-Themen 25
B sudoku backtrackingproblem Allgemeine Java-Themen 2
S Algorithmus für Sudoku Allgemeine Java-Themen 17
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
M Threads über Kommandozeile Allgemeine Java-Themen 5
K Input/Output Enter der OS-Kommandozeile nachstellen Allgemeine Java-Themen 4
G Auf Kommandozeile über Processobjekt mit Outputstream Allgemeine Java-Themen 3
M Kommandozeile und Sonderzeichen Allgemeine Java-Themen 2
I bibliotheken nur via kommandozeile laden Allgemeine Java-Themen 16
J mailx Kommandozeile Allgemeine Java-Themen 5
W Probleme beim Ausführen einer Java Klasse auf Kommandozeile Allgemeine Java-Themen 17
M Kommandozeile von Windows steuern Allgemeine Java-Themen 2
A Bild über Kommandozeile ausgeben? Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben