Struct als Array (in einem Struct)



  • Hallöchen liebe Community 🙂
    Ich bin neu hier und habe leider ein kleines (großes?) Problem, und zwar:

    Ich versuche mich an einem kleinen Projekt in C++ und muss dort den Struct "Slots" als Arrays in den Struct "Player" bekommen. Und zwar, damit ihr es versteht (falls ihr es noch nicht tu ;)), "Slots" ist quasi der Struct für einen Inventar-Slot. Der Struct "Player", also der Spieler soll 10 von diesen Slots zur Verfügung bekommen. Diese will ich aber als Arrays zusammenfassen. Jetzt habe ich es mit folgender Lösung probiert:

    struct Player { string Name; int HP; int MaxHP; int EXP; int MaxEXP; int LV; Slots slot[10]; }; struct Slots { string Name; bool Belegt; };
    

    Jedoch bekomme ich dort immer folgende Meldung: "fiel 'slot' has a incomplete type"

    Jetzt habe ich 3 Fragen: 1. Ist das ganze überhaupt so machbar? 2. Wenn ja, welchen Lösungsvorschlag schlagt ihr mir vor? 3. Gibt es noch eine elegantere Lösung um in einem Text basiertem RPG einem Spieler ein Inventar zu ermöglichen? 😕

    Übrigends, falls ihr mehr Code braucht, gebe ich den gerne zur Verfügung, nur das Problem scheint wirklich in dieser Zeile zu liegen. Übrigens verwende ich Dev-C++ als Compiler 🙄

    Ich bedanke micg schon mal im vorraus für jegliche Hilfe :3



  • 1. ja, definiere Slots einfach vor Player.
    2. siehe 1.
    3. wenn der spieler unbegrenzt viele items aufheben kann, dann würde ich zu einer dynamischen liste greifen (std::vector). ausserdem würde ich bei den items jeweils nur eine ID speichern (und vll. stapelhöhe wenn das im spiel gehen soll) und dann auf eine globale ID-liste zugreifen, in der alles mögliche gespeichert ist.



  • 1. Oh, oke, das könnte die Lösung sein ^^
    3. Oke, aber ich möchte ein paar Items mit fest definiertem Namen (z.B. Heiltrank) und ein paar die Random-Namen bekommen, also aus zwei vordefinierten Silben zusammengesetzt werden, geht das auch damit?



  • 1. Oh, oke, das könnte die Lösung sein ^^
    3. Oke, aber ich möchte ein paar Items mit fest definiertem Namen (z.B. Heiltrank) und ein paar die Random-Namen bekommen, also aus zwei vordefinierten Silben zusammengesetzt werden, geht das auch damit?



  • ja geht. meinst du in etwa "starker heiltrank" oder sowas? dann kannst du das basisobjekt einfach mit einer ID speichern und einen modifikator mit einer anderen ID. so hast du dann minimalen aufwand für maximale vielfältigkeit. (musst die adjektive stark, schwach etc. nur ein mal speichern, ebenso die prozente der modifikatoren und ein item braucht nur 2 IDs speicher)



  • Stichwort: Composite Pattern 😉


Anmelden zum Antworten