Es ist im Grunde nichts besonderes. Typendefinition: Code (Delphi): //Alle Werte eines Feldes PField = ^TField; TInfo = record row, col : TRowCol; //Position im gesamten Spielfeld player : TPlayer; selected : boolean; end; TField = record Info : TInfo; p : array[TPointerDirection] of PField; //Zeiger auf die Nachbarfelder pNext : PField; //lineare Verkettung end; Den Rest der Typendefinition hab ich mal weggelassen. Funktion: Code (Delphi): function list_isIn(I:TInfo; F:PField):boolean; begin if I = F^.Info then list_isIn := true else list_isIn := list_isIn(e, list_tail(l)); end; list_tail() liefert nur den pNext-Zeiger
//Alle Werte eines Feldes PField = ^TField; TInfo = record row, col : TRowCol; //Position im gesamten Spielfeld player : TPlayer; selected : boolean; end; TField = record Info : TInfo; p : array[TPointerDirection] of PField; //Zeiger auf die Nachbarfelder pNext : PField; //lineare Verkettung end;
function list_isIn(I:TInfo; F:PField):boolean; begin if I = F^.Info then list_isIn := true else list_isIn := list_isIn(e, list_tail(l)); end;
Foren-Regeln