hi, erstmal danke für die vorschläge.
also, wenn ich das alles richtig verstanden habe, dürfte das auch dann kein problem mehr sein,
verschieden schwere rätsel zu lösen/erstellen (bei denen ja nur verschieden viele zahlen fehlen).
mein problem ist jetzt nur, das rechnen mit den bitcodierten Cardinals.
shl sagt mir zwar was (du hattest das glaube ich auch schon ein paar mal im form erklärt), aber benutzt hab ich das nie

. naja, aber das werde ich dann jetzt mal ändern.
edit: so, hab noch n bisschen rum probiert:
Delphi-Quellcode:
var
Field : Array [1..9, 1..9] of TField // record mit possible(Cardinal) und current(0..9)
Row, Col: Array [1..9] of Cardinal;
Block : Array [1..3, 1..3] of Cardinal;
{...}
procedure OnFieldChange(Sender: TObject);
begin
with TSudokuField(Sender) do
begin
Field[Xpos, Ypos].Current := Value;
Col[Xpos] := Col[Xpos] and (1 shl oldValue);
Col[Xpos] := Col[Xpos] or (1 shl Value);
Row[Ypos] := Row[Ypos] and (1 shl oldValue);
Row[Ypos] := Row[Ypos] or (1 shl Value);
{...}
end;
end;
funktioniert nur noch nicht so richtig: das löschen mit and funzt nicht richtig, obwohl es eigentlich so richtig sein müsste, oder?
naja, morgen gehts weiter...
nicnacman