Sudoku-Lösungsprogramm

Nico192

Mitglied
Hi Leute...!

Ich möchte ein "Sudoku"-Lösungs Programm konstruieren!
Was Sudoku ist, sollte jeder wissen...:
((Es ist ein Knobelspiel; wie es aussieht,*Klicke Hier*))

Es gibt die Möglichkeit alles zu "bruten", also alles nacheinander durchzugehen!
Das ist ja klar :D
Aber gibt es auch eine Möglichkeit wie:
"Schreibe in jedes leere Textfeld eine Zahl von 1-9"
"Jede Zahl darf nur einmal in
"text1,text2,text3,text4,text5,text6,text7,text8, text9"
und nur einmal in
"text1,text2,text3,text10,text11,text12,text19,text20,text21,
vorkommen"


Geht sowas?

Danke für eure Antworten, Greetz N!C0
 
Zuletzt bearbeitet:
Klar geht sowas. Am besten fügst du die Textboxen zu einem Steuerelement-Array zusammen, dann kannst du einfacher (nämlich mit einem Index) auf sie drauf zugreifen. Anschließend schreibst du dir eine kleine Schleife, welche überprüft ob eine bestimmte Zahl bereits in einem der Textfelder von 1-9 drinsteht.
Von Sudoku hab ich zwar schon gehört, die Regeln kenne ich aber nicht.
 
...ok!
Vielleicht kann mir jemand kleine Code-Fetzen geben ;);)
Also ich will nicht(!!) irgendnen Link zu nem Programm der die lösen kann...
Es geht mir darum dass ich es programmiere, die Lösungen bekomme ich auch so ;)

@Shakie: Ganz Grob:
9x9 Matrix, in jedem "3x3"-Kästchen darf jede Ziffer (von 1-9) nur einmal vorkommen!
In jeder Zeile auch!

Zeile:
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X

"3x3 Kästchen":
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X
X X X | X X X | X X X

Greetz & ThX N!C0
 
Platziere mal ein Textbox-Array auf deiner Form und nenne die Textboxen "txtFeld".
Füge anschließend diesen Code hier ein:
Visual Basic:
Private Sub txtFeld_Change(Index As Integer)

Dim intCounter As Integer
Dim strCheck As String
strCheck = Me.txtFeld.Item(Index).Text

For intCounter = Me.txtFeld.LBound To Me.txtFeld.UBound
    If (intCounter <> Index) And (Me.txtFeld.Item(intCounter).Text = strCheck) And (Len(strCheck) <> 0) Then
        MsgBox "Diese Eingabe ist bereits in Feld Nr." & intCounter & " enthalten!"
        'Eingabe in der Textbox löschen:
        Me.txtFeld.Item(Index).Text = vbNullString
    End If
Next
End Sub
Es wird nun jedesmal, wenn sich die Eingabe in einem der Felder ändert überprüft, ob die Eingabe schon in einem anderen Textfeld drin steht.
 

Neue Beiträge

Zurück