Ideen für ein Dynamisches Regelsystem

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Mandy.

    Ideen für ein Dynamisches Regelsystem

    Hallo zusammen,

    Ich suche Ansätze und Ideen mit welchen Optionen dass Framework mir bei meiner Idee behilflich sein könnte.

    Ich habe ein Programm zum erstellen von Maps und Tilset´s erstellt.

    Nun bin ich dabei eine Klasse zu erstellen die als Biom fungiert. Zur Laufzeit werden dort die ausgewählten Tiles eingefügt. Würde diese gerne auch nur als eine Art Verknüpfung einfügen dass die Tiles auch nur einmal vorhanden sind, ansonsten sprengts mir ja irgendwann den Speicher.

    Zurück zu der Klasse Biom. Diese bekommt nun von der Klasse die mein Tilset erstellt die Objecte die z.B. zum Wasser gehören.

    Nun komme ich zu dem Punkt wo ich noch nicht so recht weis was ich am günstigsten verwenden könnte. Zur schnellen verarbeitung habe ich noch eine Gruppe die ganze Sammlungen von Tiles als Gruppe speichert, diese Gruppen o.a einzelne Tiles sollen zur dynamischen Generierung bestimmten Regelungen unterliegen, wie z.B. mindest Anzahl oder max Anzahl, zusammengehörigkeit zu anderen Gruppen ect. Da dass ganze erst zur Laufzeit erstellt wird, werden die Regelungen auch erst dann erstellt. Klar ich könnte ein vorher defeniertes Grundgerüst erstellen, die eine Gewisse Anzahl an Regeln schon beeinhaltet, aber dass ganze wäre ja auch dann nicht dynamisch. Ich würde auch gerne Regeln eine Unterregel zuweisen könnnen.

    Um dass ganze ein wenig kürzer zu fassen : Ist es möglich eine Art Regelsystem zu erstellen von der ich noch nicht weis auf welche Typen/Anzahl/Verbindungen/Unterregelungen sie angewendet wird ?

    Gruß Bagplatt :whistling:
    Hallo Bagplatt,

    du kannst ja einmal mit dem Grundgerüst, dass einige Regeln enthält (auch die Unterregeln) beginnen,
    und diese in groben Ablaufstrukturen zu Papier bringen (ich bin da ganz altmodisch, aber Papier ist einfach geduldiger).

    Wichtig ist, dass dabei möglichst alle Voraussetzungen und Bedingungen der Regeln herauskommen.
    Dann wirst du auch schnell sehen, welche Eigenschaften beim Instanzieren eines Objektes 'Regel' notwendig sind.
    Möglicherweise reicht ja ein Interface für die Klasse 'TileSetErstellung' (und 'Biom'?) das alle notwendigen Daten zur Verfügung stellt.

    Im nächsten Schritt ist dann die Frage: Wo werden die dynamischen Regeln definiert?
    In einem File? DB? Zufällig?
    Die Struktur der Daten sollte sich aus den Zeichnungen ergeben.

    Schöne Grüße
    Manfred
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup:
    Hallo @Mandy

    Ich habe mir dass ganze jetzt mal so überlegt dass ich mir in einem eigenen Namespace mehrere Abstrackte Klassen erstelle die meine Späteren Regeln definieren. So kann ich dann auch der Regel eine weitere untere Regel zuweisen.

    Da die Daten nur in einem kleinen Bereich bei der späteren Laufzeit gezielt geladen werden sollte eine Datei zur Speicherung für die Geschwindigkeit keine große Probleme darstellen.

    Ich hab eine absolute Basis Klasse, diese stellt absolute Fixpunkte dar, die am Ende jedes Tile besitzen. Klasse Tile erbt von dieser. Sollte ich die Instanz von der Regel schon dieser zuweisen? Ich tendiere eher zu nein. Da manche Objekte evt. keine Regel besitzen werden.

    Dann ist noch die Frage, wenn ich viele verschiedene Klasse für mein System erstelle, könnte ich evt. eine List(of Class) oder so was in der Art erstellen, und bei späteren abrufen dann Casten ?

    Ich könnte alle Regel Klassen im Kopf der Klasse Tile als Nothing vermerken und wenn benötigt initialisieren und überprüfen ob sie noch Nothing sind. Gefällt mir aber nicht so richtig die Idee :D

    Was denkst du?

    Schöne Grüße
    Bagplatt

    Bagplatt schrieb:

    Ist es möglich eine Art Regelsystem zu erstellen von der ich noch nicht weis auf welche Typen/Anzahl/Verbindungen/Unterregelungen sie angewendet wird ?
    Nein.
    Irgendetwas wirst du schon über das wissen müssen, was den Regeln unterworfen werden soll - sonst kann ein Regelsystem (was immer damit gemeint sein mag) nicht funktionieren.

    Und klar kannst du Namespaces, abstrakte Klassen, Regeln, Unterregeln, Classes erfinden, so viel du willst.
    Wenn du es richtig anstellst, kannst du damit sicherlich auch dein Problem lösen - andernfalls nicht.

    Mehr kann bei der allgemeinen Schwammigkeit der Problemstellung nicht dazu gesagt werden.

    Bagplatt schrieb:


    Ich habe mir dass ganze jetzt mal so überlegt dass ich mir in einem eigenen Namespace mehrere Abstrackte Klassen erstelle die meine Späteren Regeln definieren. So kann ich dann auch der Regel eine weitere untere Regel zuweisen.

    Da wird es jetzt schon ziemlich trüb in meiner Glaskugel....
    So aus dem Bauch heraus hätte ich eine Klasse 'Regelsystem' vorgeschlagen, beim Instanzieren erhält sie das File mit den Regeln.
    Das File parsen, und in einer List(of Regel) die einzelnen Regeln aus dem File einfügen.
    Jede Regel kann wieder eine List(of Regel) besitzen, für die Unterregeln.
    Denkbar wäre sogar, dass eine Regel in mehreren Listen vorkommt - dann viel Spass beim Parsen ;)

    Dann sowas in der Art von Regelsystem.IsTileValid(IRegelSetParameter)
    Die Funktion läuft alle Regeln in der Liste durch und schaut anhand der Parameter ob sie anzuwenden ist.

    Wie viele Klassen braucht man für die Regeln?
    Rein spekulativ: Eine, ansonsten eine Basisklassse von der alle Regeln abgeleitet werden - dann gilt wieder das zuvor gesagte...


    Bagplatt schrieb:


    Ich hab eine absolute Basis Klasse, diese stellt absolute Fixpunkte dar, die am Ende jedes Tile besitzen. Klasse Tile erbt von dieser. Sollte ich die Instanz von der Regel schon dieser zuweisen? Ich tendiere eher zu nein. Da manche Objekte evt. keine Regel besitzen werden.

    Siehe oben, dann kannst von jedem Punkt wo du die Parameter hast die Regeln abrufen


    Bagplatt schrieb:


    Dann ist noch die Frage, wenn ich viele verschiedene Klasse für mein System erstelle, könnte ich evt. eine List(of Class) oder so was in der Art erstellen, und bei späteren abrufen dann Casten ?

    ???

    Bagplatt schrieb:


    Ich könnte alle Regel Klassen im Kopf der Klasse Tile als Nothing vermerken und wenn benötigt initialisieren und überprüfen ob sie noch Nothing sind. Gefällt mir aber nicht so richtig die Idee :D

    Mir auch nicht.
    Kann es sein, dass du die Begriffe Klassen und Objekte durcheinanderwürfelst?


    Das denke ich, obwohl - Das meiste ist mangels Info nicht so genau durchdacht

    Mandy
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup: