also ich bin grad mal am versuchen ob ichs hinkrieg so ein 81 felder system komplett nach sudoku regelen automatisch ausfüllen zu lassen. mein erster ansatz ging jedoch schon schief: ich hab nur mal nahc der regel "die zahl nur einmal pro reihe/spalte verwenden" operiert, aber trotzdem kommen in einer zeile immer manche zahlen doppelt vor. hier der 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: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; Panel6: TPanel; Panel7: TPanel; Panel8: TPanel; Panel9: TPanel; Panel10: TPanel; Panel11: TPanel; Panel12: TPanel; Panel13: TPanel; Panel14: TPanel; Panel15: TPanel; Panel16: TPanel; Panel17: TPanel; Panel18: TPanel; Panel19: TPanel; Panel20: TPanel; Panel21: TPanel; Panel22: TPanel; Panel23: TPanel; Panel24: TPanel; Panel25: TPanel; Panel26: TPanel; Panel27: TPanel; Panel28: TPanel; Panel29: TPanel; Panel30: TPanel; Panel31: TPanel; Panel32: TPanel; Panel33: TPanel; Panel34: TPanel; Panel35: TPanel; Panel36: TPanel; Panel37: TPanel; Panel38: TPanel; Panel39: TPanel; Panel40: TPanel; Panel41: TPanel; Panel42: TPanel; Panel43: TPanel; Panel44: TPanel; Panel45: TPanel; Panel46: TPanel; Panel47: TPanel; Panel48: TPanel; Panel49: TPanel; Panel50: TPanel; Panel51: TPanel; Panel52: TPanel; Panel53: TPanel; Panel54: TPanel; Panel55: TPanel; Panel56: TPanel; Panel57: TPanel; Panel58: TPanel; Panel59: TPanel; Panel60: TPanel; Panel61: TPanel; Panel62: TPanel; Panel63: TPanel; Panel64: TPanel; Panel65: TPanel; Panel66: TPanel; Panel67: TPanel; Panel68: TPanel; Panel69: TPanel; Panel70: TPanel; Panel71: TPanel; Panel72: TPanel; Panel73: TPanel; Panel74: TPanel; Panel75: TPanel; Panel76: TPanel; Panel77: TPanel; Panel78: TPanel; Panel79: TPanel; Panel80: TPanel; Panel81: TPanel; Button1: TButton; Button2: TButton; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject); begin close; end;
procedure TForm1.Button1Click(Sender: TObject); var r, i, i2, i3: integer; panel, panel2, panel3 : TPanel; begin for i:=1 to 89 do begin r:=random(9)+1; for i2:=(i-8) to (i+8) do begin panel2 := findcomponent('panel'+inttostr(i2)) as TPanel; if panel2.caption<>inttostr(r) then begin for i3:=(i-9) to (i+9) do begin panel3 := findcomponent('panel'+inttostr(i3)) as TPanel; if panel3.caption<>inttostr(r) then begin panel := findcomponent('panel'+inttostr(i)) as TPanel; panel.Caption:=inttostr(r); end; end; end; end; end; end;
end. |
wäre schön wenn mir jmd helfen kann ich hab echt gar kein plan was ich da falsch gemacht hab, bin aber auch noch anfänger und kenn mich noch nich so gut mit der syntax aus...und sry dass ich keine genauere problembeschreibung geben kann aber ich bin grad bissjen in eile xD
danke im vorraus, gruss matze