Sudoku mit 2D Arrays

Kunzen

Mitglied
Hallo Leute,
ich muss für eine Aufgabe mit Hilfe von 2D Arrays das Sudoku Spiel nachbauen.
Ich habe schon etwas programmiert jedoch wird bei meiner Konsole alles untereinander ausgegeben ,also nur 1 Spalte.
Wie kann es so programmieren, dass auf der Konsole auch die Spalten nach rechts angezeigt werden?

Vielen Dank für jede HilfeJava Sudoku1.PNG
 

Anhänge

  • Java Sudoku 2.PNG
    Java Sudoku 2.PNG
    29 KB · Aufrufe: 54

LimDul

Top Contributor
Code in Code-Tags macht es deutlich einfacher.

System.out.println macht immer einen Zeilenumbruch (print-Line). System.out.print macht keinen, das ist das was du eher brauchst (und dann am Ende jeder Zeile einmal System.out.println verwenden)
 
Zuletzt bearbeitet:

Kunzen

Mitglied
Ich versuche nun wie im Bild die " | " hinzuzufügen jedoch wird dieser neben jeder Zahl eingefügt.
Wie könnte ich dieses Problem lösen?
Zudem soll ich aus jedem leeren Array also mit den Werten 0 , so einstellen ,dass " . " ausgegeben wird.
Jedoch ist/soll mein Array ja vom Typ Int sein diesen muss ich nun in String umwandeln (hab ich mit Integer.toString(zweidimarray [j]); versucht, oder gibt es noch eine andere Möglichkeit?Java Sudoku1.PNGJava Sudoku 3.PNG
 
Zuletzt bearbeitet:

LimDul

Top Contributor
Ich versuche nun wie im Bild die " | " hinzuzufügen jedoch wird dieser neben jeder Zahl eingefügt.
Wie könnte ich dieses Problem lösen?
Zudem soll ich aus jedem leeren Array also mit den Werten 0 , so einstellen ,dass " . " ausgegeben wird.
Jedoch ist/soll mein Array ja vom Typ Int sein diesen muss ich nun in String umwandeln (hab ich mit Integer.toString(zweidimarray [j]); versucht, oder gibt es noch eine andere Möglichkeit?
Die | willst du ja nur am Anfang und dann nach jeder dritten Spalte ausgeben. Dafür bietet sich der Modulo-Operator (%) an.

Java:
if (index % 3 == 0) {
  System.out.print("|");
}
Beim umwandeln muss du etwas kreativer werden. Da brauchst du eine Abfrage der Form Wenn wert == 0, dann gibt "." aus, ansonsten gib (wie bisher) einfach den Wert aus.
 

Kunzen

Mitglied
Danke dir!
Ich habe jetzt das mit der Umwandlung zu Punkten geschafft jedoch werden mir immer noch "|" überall angezeigt. Ich sehe momentan nicht meinen Denkfehler Sudoku4.PNG
 

Kunzen

Mitglied
Vielen Dank für eure Antworten.
Were das mit den Code-Tags jetzt auch so handhaben.
Ich habe es auch mit Index versucht jedoch kommt dann die Fehlermeldung
index cannot be resolved to a variable
 

Kunzen

Mitglied
Ok super jetzt habe ichs ^^
Und nun brauche ich ja die waagrechten " -------"
Muss ich um diese zu erzeugen auf den index i zugreifen? Habe es so versucht jedoch kommt es dann ganz komisch raus, die senkrechten Striche funktionieren jedoch mit dem index [ j ] if ( j % 3 == 0) { System.out.print("| "); } else if (i % 4 == 0) { System.out.print("----------"); }
 

fhoffmann

Top Contributor
Du hast zwei for-Schleifen. Die senkrechten Striche musst du in die for-Schleife einbauen, in der du über die Spalten iterierst, die waagerechten Striche musst du dagegen (nur) in die for-Schleife einbauen, die über die Zeilen iteriert.
 

Kunzen

Mitglied
Vielen Dank an euch jetzt hat es endlich geklappt.
Meine nächste Hürde ist jetzt vordefinierte Zahlen mit den Punkten zu ersetzen. Dies habe ich gemacht jedoch bekomme ich kein Leerzeichen nach der eingegeben Zahl hin
[CODE lang="java" title="Definierte Zahl eintragen"]zweidimArray[1][0] = 2;
if (zweidimArray[1][0] != 0) {

System.out.print(zweidimArray[1][0] + " ");
}

Ausgabe: -----------------------
| . . . | . 6. | . . .
| 2. . | . . . | . . .
| . . . | . . . | . . .[/CODE]

Und dann muss ich die Methode static void insert(int x, int y, int zahl) erstellen und das Programm so definieren:
Jetzt muss ich irgendwie wenn ich x & y sozusagen eintippe diese Werte in int zahl einsetzen und dann überprüfen ob der Bereich bei 1-9 liegt und wenn ja dies dann auf das Sudoku Spiel übertragen

[CODE lang="java" title="static void insert(int x, int y, int zahl)"] static void insert(int x, int y, int zahl) {
/**
* Wenn x-te Zeile und y-Spalte leer dann Wert mit int zahl übergeben x-Zeile und
* y-Spalte dürfen nur im Bereich 1-9 liegen. Wenn nicht alle Werte gültig ||
* wenn Feld != 0 dann macht die Methode nichts.
*/
if (x == 0) {

zahl = In.readInt();
if (x <= 9 && x >= 1) {
System.out.print(zweidimArray[zahl]);
}
}
if (y == 0) {
zahl = In.readInt();
if (y <= 9 && y >= 1) {
System.out.print(zweidimArray[x][y]);
}
}[/CODE]
 

temi

Top Contributor
Also was schon mal gar nicht geht, ist das readInt() innerhalb der Methode insert(). Alles was die Methode braucht, bekommt sie als Parameter übergeben. Da muss nichts mehr eingelesen werden. Das ist nicht die Aufgabe der Methode!

Das gilt auch für die Ausgabe innerhalb der Methode. Die gehört da auch nicht hin.

Einzige Aufgabe der Methode ist es die übergebene zahl zu prüfen, ob sie gültig an der durch x,y definierten Stelle eingesetzt werden kann und diese dann in das Array zu schreiben.

Für das andere Problem zeig mal den gesamten Code zur Darstellung des Sudoku.
 

Kunzen

Mitglied
Vielen Dank. D.h ich muss im main Bereich für int x und int y die In.readInt() einlesen und die Grenzwerte 1-9 festsetzen und diese beiden zahlen in int zahl speichern, dann in der insert() Methode bekomme ich wieder int zahl und überprüfe ob an der Stelle 1. die Werte gültig sind und ob das Feld leer ist?

[CODE lang="java" title="Sudoku Code"]
public class Sudoku {
static int[][] zweidimArray = new int[9][9];

public static void main(String[] args) {
showSudoku();

}

static void showSudoku() {

/*
* Sudoku Ausgabe wie im Bild. 3x3 Quadrate durch Begrenzungen sichtbar machen.
* D.h immer bei Zeile 1-9 und Spalte 1,3,6 und 9 kommt ein | Leere Felder
* sollen mit einem Punkt dargestellt werden.
*/
System.out.print("-----------------------");

if (zweidimArray[1][0] != 0) {

System.out.print(zweidimArray[1][0] + " ");
}
zweidimArray[0][4] = 6;
zweidimArray[4][7] = 3;
zweidimArray[4][8] = 1;
zweidimArray[6][2] = 4;
zweidimArray[7][5] = 9;
zweidimArray[1][0] = 2;
for (int i = 0; i < zweidimArray.length; i++) {
System.out.println();
for (int j = 0; j < zweidimArray.length; j++) {
// System.out.print( zweidimArray [j] );

// Index zugreifen mit Modulo-Operator
if (j % 3 == 0) {
System.out.print("| ");

}

if (zweidimArray[j] == 0) {
System.out.print(". ");
} else {
System.out.print(zweidimArray[j]);
}
}
if (i % 3 == 2) {
System.out.println("");
System.out.print("-----------------------");
}

}
}

static void insert(int x, int y, int zahl) {
/**
* Wenn x-te Zeile und y-Spalte leer dann Wert mit zahl übergeben x-Zeile und
* y-Spalte dürfen nur im Bereich 1-9 liegen. Wenn nicht alle Werte gültig ||
* wenn Feld != 0 dann macht die Methode nichts. for (int x = 0; x <
* zweidimArray.length; x++) { System.out.println(); for (int y = 0; y <
* zweidimArray.length; y++) {
*
*
*/

if (x == 0) {

zahl = In.readInt();
if (x <= 9 && x >= 1) {
System.out.print(zweidimArray[zahl]);
}
}
if (y == 0) {
zahl = In.readInt();
if (y <= 9 && y >= 1) {
System.out.print(zweidimArray[x][y]);
}
}
/*
* for (x = 0; x < zweidimArray.length; x++) { x = In.readInt();
* System.out.println(); for (y = 0; y < zweidimArray[x].length; y++) { } }
*/

}

}
[/CODE]
 

Kunzen

Mitglied
ist es so richtig?
Aber irgendwie weiß ich jetzt nicht wie ich die Eingaben inser() übergeben soll
Java:
int x = In.readInt("Gebe dein Wert ein: ");
int y = In.readInt("Nun der zweite Wert: ");
int[] zahlen = new Int[1];
zahlen[0] = x;
zahlen[1] = y;
 

temi

Top Contributor
ist es so richtig?
Wie wäre es ungefähr so:
Java:
int x = In.readInt("Gebe die X-Position ein: ");
int y = In.readInt("Gebe die Y-Position ein: ");
int zahl = In.readInt("Gebe die Zahl ein: ");
insert(x,y,zahl); // die drei Variablen werden als Parameter an die Methode übergeben

Wenn ihr diese Aufgabe mit Methoden und Parametern bekommen habt, dann müsstest du das doch auch mal beigebracht bekommen haben, wie das grundsätzlich funktioniert. Privat? Schule? Studium?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
A Sudoku mit Backtracking lösen Java Basics - Anfänger-Themen 3
L Sudoku Backtracking Pseudocode Java Basics - Anfänger-Themen 3
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
D Sudoku lösen mit Backtracking Java Basics - Anfänger-Themen 20
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
X Sudoku Backtracking Java Basics - Anfänger-Themen 6
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
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben