Type Objekt anhand Wert in anderem Objekt finden

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Firstdeathmaker

Betreff: Type Objekt anhand Wert in anderem Objekt finden

BeitragMi, Sep 14, 2005 19:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Tschuldigung für die lange Überschrift, aber das beschreibt mein Problem am besten. Ich möchte eine Liste nach einem bestimmten Wert durchsuchen, der in einem Objekt das in der Liste ist gespeichert ist. Schematisch quasi:

Typ1
field L:Tlist mit vielen Typ2 drin
end Type

Typ2
field T:Typ1
end Typ

Und ich will jetzt durch eine Methode in Typ1 nach einem bestimmten anderen Typ1 suchen, der in einem der in der Liste L enthaltenen Typ2 in der Variabel T gespeichert sein soll. Auf meiner Suche nach einer Lösung bin ich auf die Funktion ListContains( list:TList,value:Object ) gestoßen. Meine Frage nun: Kann man, und wenn ja, wie, die Liste nach einem Objekt mit einer Variabel die einen bestimmten Wert enthält durchsuchen, oder muss man das ganze "zu Fuß" frickeln, so in etwa:

Code: [AUSKLAPPEN]
Method(Lookin_For:Party)
   For Local PC:Party_Call = EachIn Self.PartyCall_List
      If PC.Party = Lookin_For Return PC.Call
   Next
End Method


Hier mal der Code, die Methode die so funktionieren soll heißt GetCall().


Code: [AUSKLAPPEN]
'Party / Parteiensystem. Jede Partei hat eine Liste in welcher der jeweilige Ruf der anderen vermerkt ist.
Type Party
   Global Party_List:TList
   Field Name:String
   Field PartyCall_List:TList
   
   Function create:Party(Name:String)
      If Party_List = Null Party_List = New TList
      Local P:Party = New Party
      P.Name = Name
      'PartyCall_Netz erzeugen, bei anderen und eigene Liste anlegen.
         For Local P2:Party = EachIn Party_List
            Local PC:PartyCall = New PartyCall
            PC.Party = P:Party
            P2.PartyCall_List.addlast(PC:PartyCall)
            
            PC:PartyCall = New PartyCall
            PC.Party = P2:Party
            P.PartyCall_List.addlast(PC:PartyCall)
         Next
      Party_List.addlast(P)
      Return P:Party
   End Function
   
      Method New()
         PartyCall_List = New TList
      End Method
      
   Function Kill_All()
      For Local P:Party = EachIn Party_List
         P.kill()
      Next
   End Function
      
      Method kill()
         Party_List.remove(Self)
      End Method
      
   Method GetCall:Float(P:Party)'Liefert den Ruf der gefragten Partei
      Local PC:PartyCall = ListFindLink(PartyCall_List,PartyCall.Call)
      Return PC.Call
   End Method
      
End Type

   Type PartyCall
      Field Party:Party
      Field Call:Float'Negative = Bad, Positive = Good
   End Type
'ENDE Party / Parteiensystem.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

simi

BeitragDo, Sep 15, 2005 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast ja deine Verlinkten Party_call-objekte alle in einer Liste drin....
Dann hast du direkt den Wert?? oder nicht?? :\

Firstdeathmaker

BeitragSa, Sep 17, 2005 0:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Eben nicht, weil ich nicht Party_Call sondern nur Party suche.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

rema

Betreff: Re: Type Objekt anhand Wert in anderem Objekt finden

BeitragSa, Sep 17, 2005 6:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Firstdeathmaker hat Folgendes geschrieben:
Meine Frage nun: Kann man, und wenn ja, wie, die Liste nach einem Objekt mit einer Variabel die einen bestimmten Wert enthält durchsuchen, oder muss man das ganze "zu Fuß" frickeln, so in etwa:

Code: [AUSKLAPPEN]
Method(Lookin_For:Party)
   For Local PC:Party_Call = EachIn Self.PartyCall_List
      If PC.Party = Lookin_For Return PC.Call
   Next
End Method



Ja, so ist es. Es gibt keine andere Methode um dies zu bewerkstelligen.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group