spezielle datenstruktur txt-datei in attribute einlesen



  • habe folgende txt-datei:

    :Gagagu
    10
    0
    kein Inventar!
    :Jens
    120
    101
    #Schweineschwarte
    1
    100
    *kleineStock
    0
    1
    :Sten
    100
    2
    *Magnum  
    10
    1
    #Ei
    1
    1
    

    Weiter habe ich eine Klasse Player mit den attributen string playername, int maxweight und int currentweight (bsp hier abgespeichert :Sten -> playername
    100-> maxWeight; 2-> currentweight) und eine std::list mit dem <items>....*
    dann habe ich eine abstracte Klasse Item mit zwei Unterklassen namens Food und Weapon. hier in der Datei. erkennbar mit "*" weaponname, dann 10->weaponvalue und 1>weaponweight. # ist Food .

    jetzt habe ich das problem wie bekomme ich die datei auseinandergefriemelt.
    habe eine idee. nur bei der umsetzung happert es

    ich würde die datei auslesen in temporäre attribute
    und dann eben meine objekte erstellen und in einen vector speichern

    also wenn ich die attribute hätte
    aufruf

    Player Players(playername, maxWeight,currentWeight )	;	
    		  playerVector.push_back(Players);
    

    dann wenn ich die itemattribute hätte je nach ob food oder weapon
    bei weapon also.

    Item *pItem= new Weapon(name,value,weight);
    

    danach einfach nur hinzufügen

    for (std::vector< Player >::iterator location=playerVector.begin(); location!=playerVector.end(); location++)
    {
       if (location->getName()==playername)
    	{
    	cout<<"\ndem Spieler ["<<pname<<"] wurde";
    	location->addItem(*pItem);
    	}
    }
    

    //wobei ich glaub brauch ich garnicht suchen weil ja klar ist zu welchen player

    NUR wie komm ich an die attribute ran vorallem muss ja bestimmen -ist es food oder weapon oder kein Inventar! hmmm?
    hoffe ich hab das so beschrieben das ihr das rafft 😕 🙄

    ps.
    für eifrige habe ich das programm hier http://www.icefighters.eu/Klausur04.rar gelagert 😉
    in der main ist die dubiose load- funktion die nicht geht



  • Ich sag mal ganz spontan wie ich das machen würde.

    Wenn die Spieler vorher nicht feststehen, dynamisch mit new erzeugen.
    Es ist doch wohl so, das jeder Spieler mal Food und Weapon hat, dann pack dir doch
    zwei Zeiger auf konkrete Klassen, je einen für Food und Weapon in die Klasse Player rein.
    Beim Erzeugen der Spieler kannst du ja die zugehörigen Foods und Weapons auch gleich mit erstellen, die Attribute über Methoden zuweisen.


Anmelden zum Antworten