Zitat von
Salazriel:
wirklich keiner eine idee?
Versuch es mal so.
Hab nicht geprüft ob das so funktioniert.
Ich meine du solltest erst dann "auf Single" prüfen, wenn von der Menge der Zahlen einer Zelle die Mengen der anderen Zellen dieser Zeile abgezogen wurden.
Die Geschichte mit der Verschiebung und Mod 9 finde ich nicht so glücklich. Ist unklar und teuer.....
Und, nach RestMengeNeuZuOrdnen(i,Spalte,Zeile) meine ich sollte die Prüfung abgebrochen werden, weil sich die Voraussetzungen geändert haben.
Delphi-Quellcode:
procedure HiddenSingles;
var i,Spalte,xSpalte,Zeile,Anfangszelle,Verschiebung:integer;
RestMenge:Zahlen;
begin
//Zeilenweise
for Zeile:=0 to 8 do
for Spalte:=0 to 8 do begin
RestMenge:=FeldMenge[Spalte,Zeile];
For xSpalte:=0 to 8 do
if xSpalte<>Spalte then
RestMenge:=RestMenge-FeldMenge[xSpalte,Zeile];
For i:=1 to 9 do
If RestMenge=[i] then begin
StringGrid1.cells[Spalte,Zeile]:=Inttostr(i);
RestMengeNeuZuOrdnen(i,Spalte,Zeile);
exit;
end;
end;
//Spaltenweise
//Blockweise
end;