hallöchen leute,
ich weiß sudoko als thema bei delphi nervt euch sicherlich schon ... und ja ich habe die forum suche auch fein genutzt

aber da ich selber nicht soooooo doll bewandert bin was delphi angeht habe ich mich an meinen eigenen Code gesetzt und versucht einen Generator zu erstellen ... ich habe zwei 2d-felder ... einmal für die Reihe und für die spalte.
dort wird dann immer geschaut ob die zahl in der reihe oder spalte schon vorhanden ist ... eben das funktioniert auch recht gut, ich bekomme aber kein komplettes feld (mein erstes problem)
mein zweites problem ist die prüfung der 3x3 felder ... da hab ich keine ahnung wie ich das gut umsetzen soll vorallem wenn fehlbelegungen der zellen auftreten, da zahlen doppelt vergeben sind.
ich habe online schon codes gefunden und ansätze aber die sind mir alle zu schwer und ich steig da nicht durch ... hoffe ihr könnt mit meinem code was anfangen und mir vllt helfen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TForm1.generierenButtonClick(Sender: TObject); var i,spalte,reihe,zahl: integer; reihe_feld,spalte_feld: array[0..8,1..9] of boolean; begin randomize; for spalte:=0 to 8 do begin for reihe:=0 to 8 do begin feld.Cells[spalte,reihe]:=''; end; end; for reihe:=0 to 8 do begin for i:=1 to 9 do reihe_feld[reihe,i]:=false; end; for spalte:=0 to 8 do begin for i:=1 to 9 do spalte_feld[spalte,i]:=false; for reihe:=0 to 8 do begin zahl:=random(9)+1; if (spalte_feld[spalte,zahl]=false) and (reihe_feld[reihe,zahl]=false) then begin feld.Cells[spalte,reihe]:=IntToStr(zahl); spalte_feld[spalte,zahl]:=true; reihe_feld[reihe,zahl]:=true; end; end; end; end; |