Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Kreuzworträtsel und Rekursion

  Alt 22. Jul 2005, 13:13
hmm, also spontan würde ich das so machen:

Delphi-Quellcode:
type
  TArr = array [1..5,1..5] of char;

function Getwords(Arr: TArr; x,y, xchange, ychange:Integer):TStringList;
var Temp:String;
begin
  Result.Clear;
  Temp:='';
  while (x<6) and (x>0) and (y<6) and (y>0) do
    begin
    Temp:=Temp+Arr[x,y];
    Result.Add(Temp);
    x:=x+xchange;
    y:=y+ychange;
    end;
end;

procedure GetAll(Arr: TArr; var Words: TStringList);
var x,y:Integer;
begin
  for x:=1 to 5 do
    for y:=1 to 5 do
      begin
      Words.AddStrings(GetWords(Arr,x,y,1,0)); //rechts
      Words.AddStrings(GetWords(Arr,x,y,-1,0)); //links
      Words.AddStrings(GetWords(Arr,x,y,0,1)); //unten
      Words.AddStrings(GetWords(Arr,x,y,0,-1)); //oben
      Words.AddStrings(GetWords(Arr,x,y,1,1)); //rechts unten
      Words.AddStrings(GetWords(Arr,x,y,1,-1)); //rechts oben
      Words.AddStrings(GetWords(Arr,x,y,-1,1)); //links unten
      Words.AddStrings(GetWords(Arr,x,y,-1,-1));//links oben
      end;
end;
es sind mit sicherheit noch fehler drin (kann man tstringlist als result machen?), ich erstelle keine einzige klasse, aber vom prinzip sollte es gehen...

es werden von allen punkten aus alle kombis aufgelistet die es gibt.

das sind viele
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat