Morgen allerseits,
also wie schon der Titel des Threads sagt programmiere ich zur Zeit Sudoku was im Prinzip schon fertig ist.
Warum ich nun diesen Thread eröffnet habe ist, ob es doch bessere Arten gibt da ran zu gehen.
Der erste Punkt ist das Generieren vom Sudoku. Ich generiere auf dieser Weise ein Sudoku:
Schritt 1:
Ich fülle ein Array von 1-9 und vermische dann die Zahlen.
Aussehen:
3 4 2 5 1 6 9 7 8
Schritt 2:
Jetzt erstelle ich ein 2D Array [9][9] ( [Horizonal][Vertikal] ) und die erste Horizontale Liene(Bahn) bekommt die Zahlen die ich genieriert habe( Siehe Array (1-9) ) . Und so fülle ich anschliessend das 2D Array:
342 516 978 ---> 2D Array [0][0-8]
978 342 516 ---> 2D Array [1][0-8] ( Um 3 versetzt )
516 978 342 ---> 2D Array [2][0-8] ( Um 3 versetzt )
834 251 697 ---> 2D Array [3][0-8] ( Um 4 versetzt )
697 834 251 ---> 2D Array [4][0-8] ( Um 3 versetzt )
251 697 834 ---> 2D Array [5][0-8] ( Um 3 versetzt )
783 425 169 ---> 2D Array [6][0-8] ( Um 4 versetzt )
169 783 425 ---> 2D Array [7][0-8] ( Um 3 versetzt )
425 169 783 ---> 2D Array [8][0-8] ( Um 3 versetzt )
Schritt 3:
So und anschliessend vertausche ich jede Horizontale per Zufall miteinander:
516 978 342
342 516 978
783 425 169
251 697 834
425 169 783
978 342 516
834 251 697
169 783 425
697 834 251
Schritt 4:
Und nachdem das alles geschehen ist ersetzte ich per Zufall im 2D Array Zahlen mit 0 , dementsprechend welche Schwierigkeit eingestellt ist.
Überprüfe natürlich auch ob schon 0 vorhanden und suche neue Position wenn ja.
016 908 000
300 006 900
000 020 009
001 000 030
005 109 003
900 040 010
000 200 600
100 003 400
097 030 201
Und dies fülle ich dann JLabels ( Ohne 0 ).
1 Frage: Was haltet ihr von dieser herangehensweise?
Meine zweite Variante wäre noch das ich wieder ein Array erstelle wie in Schritt 1 geschehen und dann auch die erste Reihe mit den Zahlen fülle und ab 1-8 für jede Reihe per Zufall für jedes Kästen eine Zahl genierieren und überprüfen ob Vertikal ( 0 - aktuelleReihe-1 ) die Zahl schon vorhanden ist , wenn ja neue Zufallszahl.
Ich muss auch nicht jedes Mal Vertikal von 0-8 laufen , sondern ab da wo es schon korrekt war.
Ich änder im Prinzip Schritt 2-3.
Natürlich ist diser aufwand größer als die erste Variante, da ich überprüfen muss ob Zahl schon vorhanden. ( Siehe Zeilen oberhalb )
2 Frage: Welche von den beiden herangehensweisen würdet ihr bevorzugen?
Zur Zeit benutze ich die erste Variante!!!
3 Frage: Habt ihr andere herangehensweisen die Ihr mir empfehlen würdet?
So jetzt möchte ich eine eigene Variante von Sudoku erstellen.
Nämlich Mathematisches Sudoku. Gemeint ist damit:
Ich habe eine Reihe von:
|9|3|0| # |12|15|0| # |18|21|24| ---> Multipliziert mit 3
Wenn der User jetzt auf das leere Kästchen klickt erscheint ein Popup wo er dann eine Auswahl hat.
Die Auswahl soll nicht so ausschauen : 3 6 9 12 15 18 21 24 --
Sondern mit Mathematische Rechnungen, also für die fehlende Zahl 6 z.B:
6 = (6*6)/10-12 für den richtigen fall!
und natürlich noch 8 Rechnungen die aber die Zahl 6 ergeben sondern : 3 9 12 15 18 21 24
Die Auswahl ist natürlich durcheinander!
Überlege noch ob ich die Formel im Kästchen anzeigen lassen und erst die Entsumme beim erfolgreichen Lösen oder von der Rechnung direkt das Ergebnis anzeigen lasse.Aber das spielt jetzt keine Rolle.
Meine Überlegungen bisher waren das ich eine Datei habe für mehrere Mathematische wege für z.B die 6 gibt , sprich:
6:
- (6*6)/10-12
- ((4*12)-13)/5-1
- (120/2)/10
usw...
Diese Variante gefällt mir aber nicht!!!
Frage 4 und die wichtigste frage :
Wie kann man es umsetzen das ich Mathematische Rechnung generieren für die 3,6,9 usw ?
P.S ... Ich Multipliziere nicht nur mit 3 sondern von 2-20 z.B
Übrigens soll es für eine Schule sein.
Ich freue micht auf eure Beiträge und Hilfe !! :toll:
also wie schon der Titel des Threads sagt programmiere ich zur Zeit Sudoku was im Prinzip schon fertig ist.
Warum ich nun diesen Thread eröffnet habe ist, ob es doch bessere Arten gibt da ran zu gehen.
Der erste Punkt ist das Generieren vom Sudoku. Ich generiere auf dieser Weise ein Sudoku:
Schritt 1:
Ich fülle ein Array von 1-9 und vermische dann die Zahlen.
Aussehen:
3 4 2 5 1 6 9 7 8
Schritt 2:
Jetzt erstelle ich ein 2D Array [9][9] ( [Horizonal][Vertikal] ) und die erste Horizontale Liene(Bahn) bekommt die Zahlen die ich genieriert habe( Siehe Array (1-9) ) . Und so fülle ich anschliessend das 2D Array:
342 516 978 ---> 2D Array [0][0-8]
978 342 516 ---> 2D Array [1][0-8] ( Um 3 versetzt )
516 978 342 ---> 2D Array [2][0-8] ( Um 3 versetzt )
834 251 697 ---> 2D Array [3][0-8] ( Um 4 versetzt )
697 834 251 ---> 2D Array [4][0-8] ( Um 3 versetzt )
251 697 834 ---> 2D Array [5][0-8] ( Um 3 versetzt )
783 425 169 ---> 2D Array [6][0-8] ( Um 4 versetzt )
169 783 425 ---> 2D Array [7][0-8] ( Um 3 versetzt )
425 169 783 ---> 2D Array [8][0-8] ( Um 3 versetzt )
Schritt 3:
So und anschliessend vertausche ich jede Horizontale per Zufall miteinander:
516 978 342
342 516 978
783 425 169
251 697 834
425 169 783
978 342 516
834 251 697
169 783 425
697 834 251
Schritt 4:
Und nachdem das alles geschehen ist ersetzte ich per Zufall im 2D Array Zahlen mit 0 , dementsprechend welche Schwierigkeit eingestellt ist.
Überprüfe natürlich auch ob schon 0 vorhanden und suche neue Position wenn ja.
016 908 000
300 006 900
000 020 009
001 000 030
005 109 003
900 040 010
000 200 600
100 003 400
097 030 201
Und dies fülle ich dann JLabels ( Ohne 0 ).
1 Frage: Was haltet ihr von dieser herangehensweise?
Meine zweite Variante wäre noch das ich wieder ein Array erstelle wie in Schritt 1 geschehen und dann auch die erste Reihe mit den Zahlen fülle und ab 1-8 für jede Reihe per Zufall für jedes Kästen eine Zahl genierieren und überprüfen ob Vertikal ( 0 - aktuelleReihe-1 ) die Zahl schon vorhanden ist , wenn ja neue Zufallszahl.
Ich muss auch nicht jedes Mal Vertikal von 0-8 laufen , sondern ab da wo es schon korrekt war.
Ich änder im Prinzip Schritt 2-3.
Natürlich ist diser aufwand größer als die erste Variante, da ich überprüfen muss ob Zahl schon vorhanden. ( Siehe Zeilen oberhalb )
2 Frage: Welche von den beiden herangehensweisen würdet ihr bevorzugen?
Zur Zeit benutze ich die erste Variante!!!
3 Frage: Habt ihr andere herangehensweisen die Ihr mir empfehlen würdet?
So jetzt möchte ich eine eigene Variante von Sudoku erstellen.
Nämlich Mathematisches Sudoku. Gemeint ist damit:
Ich habe eine Reihe von:
|9|3|0| # |12|15|0| # |18|21|24| ---> Multipliziert mit 3
Wenn der User jetzt auf das leere Kästchen klickt erscheint ein Popup wo er dann eine Auswahl hat.
Die Auswahl soll nicht so ausschauen : 3 6 9 12 15 18 21 24 --
Sondern mit Mathematische Rechnungen, also für die fehlende Zahl 6 z.B:
6 = (6*6)/10-12 für den richtigen fall!
und natürlich noch 8 Rechnungen die aber die Zahl 6 ergeben sondern : 3 9 12 15 18 21 24
Die Auswahl ist natürlich durcheinander!
Überlege noch ob ich die Formel im Kästchen anzeigen lassen und erst die Entsumme beim erfolgreichen Lösen oder von der Rechnung direkt das Ergebnis anzeigen lasse.Aber das spielt jetzt keine Rolle.
Meine Überlegungen bisher waren das ich eine Datei habe für mehrere Mathematische wege für z.B die 6 gibt , sprich:
6:
- (6*6)/10-12
- ((4*12)-13)/5-1
- (120/2)/10
usw...
Diese Variante gefällt mir aber nicht!!!
Frage 4 und die wichtigste frage :
Wie kann man es umsetzen das ich Mathematische Rechnung generieren für die 3,6,9 usw ?
P.S ... Ich Multipliziere nicht nur mit 3 sondern von 2-20 z.B
Übrigens soll es für eine Schule sein.
Ich freue micht auf eure Beiträge und Hilfe !! :toll: