GePGen - Der Generator für alles!

  • Hm, ich habe "Programme & technische Fragen aller Art" übersehen. Müsste der Thread nicht dorthin eigentlich?
    -------------------------------------------------------------------------



    Hallo! Es ist echt eine Weile her, dass ich etwas geschrieben habe in dem Forum. Gestern oder vorgestern habe ich den Thread zum Blumengenerator gesehen und ich war echt fasziniert von der Genialität dieser Idee!


    Kurz auf die Vorstellung des manuellen Generators folgte dann die Idee eines Programms, der das Würfeln übernehmen würde. Leider gibt es zurzeit keine funktionierende Version. Da ich ja ein Informatiker vom Studium bin, habe ich dann gedacht "Wie wäre es eigentlich, wenn man die Generatoreinstellungen selbst bestimmen kann? Dann muss ich nur eine zusätzliche Datei laden, wenn ich etwas anderes brauche als genau solche Pflanzen und ich muss am Quellcode nichts ändern."


    Kurz darauf ist mir auch noch aufgefallen: So ein Generator wäre nicht nur für Pflanzen zu gebrauchen! Wenn das Format, in dem die Generierung spezifiziert wird, leicht verständlich und leicht zu schreiben ist, kann man doch sich selbst einen Generator sehr schnell basteln.


    Das Ergebnis dieser Gedanken?


    GePGen


    Also was ist denn jetzt genau GePGen?
    Es ist ein Programm, der eine XML-Datei lädt und auf dieser Basis würfelt, um etwas zufällig zu generieren. Ich schreibe momentan den Blumengenerator um, um mir klar zu werden, was ich genau brauche - das kommt garantiert mit dem Programm als ein Beispielgenerator, weil auch Viele genau daran interessiert sind.


    Und wieso dieser Thread, wenn das Programm noch nicht geschrieben ist?
    Leute, die das Programm nutzen werden, sind viel schlauer als ich und haben mehr Ideen, die in die Software reinfließen können - sie haben schließlich den Vorteil, dass sie mehr als nur eine Person sind. Genau deswegen ist der Thread da: schreibt, was ihr gerne sehen wollt, wie ihr die Idee findet, was eure Erwartungen sind. Wenn ihr eure Generatoren schreiben wollt, postet hier rein, in diesem Post wird eine kurze Spezifizierung des Formats sein. Wenn ihr helfen wollt - immer gern, meldet euch einfach!


    Für die Programmierer unter den Weltenbastlern:


    Und für diejenigen, die ihre Generatoren sofort schreiben wollen ein kurzes Beispiel - eine genauere Spezifizierung kommt noch:


    So, ich bin in den nächsten Tagen weg höchstwahscheinlich weg vom internet, ich werde mich also dann nach dem Wochenende melden. Ich bin echt gespannt, was ihr zu dem Projekt sagt! :D


    An dieser Stelle sage ich vielleicht auch noch eine wichtige Sache zur Entwicklung: Anfangs wird GePGen ein Konsollenprogramm. An sich ist er als eine Schnittstelle, ein Unterbau für GUIs gedacht, die sich auch spezialisieren können. Ich werde natürlich eine GUI bereitstellen - diese ist dann aber sehr einfach gehalten. Features, die direkt auf die Pflanze oder etwas anderes eingehen, wie Bildanzeige, wird eine separate GUI übernehmen müssen - ihr seid sehr gerne eingeladen, soetwas zu schreiben sobald die Schnittstelle feststeht, denn bevor ich dazu komme, muss ich noch viel erledigen.


    ...und bevor jemand fragt: Es steht für "General Purpose Generator", vielleicht ändert sich der Name ja noch. ^^

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Auf Wunsch des Benutzers wurde sein Profil und ein Großteil seiner Beiträge aufgrund der DSGVO gelöscht.
    Sollte dieser Thread unlesbar geworden sein, weil wir die Beiträge mit diesem Hinweis überschrieben haben, melde ihn bitte, damit wir ihn ggf. löschen können.

  • Ich finde Generatoren sehr spaßig und bastel mir gern welche, zum Würfeln oder meistens in Axcel, was aber etwas klobig ist.


    Deine Idee erinnert mich an Inspiration Pad , das ist auch eine Engine mit der man sich selbst Zufallsgeneratoren zusammenstellen kann. Dadurch dass man mehrere Generatoren ineinander integrieren kann (würde ich auch als wichtiges Feature für dein Projekt vorschlafen), kann das beliebig komplex werden.


    Als Namen finde ich Allesgenerator gar nicht mal so uncharmant ;D

    ~ Legend speaks of a beast ~

    ~ Three hundred miles from it’s tip to it’s tail ~
    ~ None have seen it, yet all know it’s name ~
    ~ Like the ark of the convenant, or the holy grail ~

  • Danke für die Antworten! :D


    Die Idee des Einbindens von Generatoren in Generatoren verändert tatsächlich das ganze Entwurf - gut, dass ich nichts programmiert habe und damit angefangen habe, andere zuerst zu fragen, was so ein Programm können muss außer dem, was ich mir vorstelle.


    Ich mache mal eine Liste von geplanten Features bisher (mit der Implementierung setze ich mich dann auseinander, wenn sie feststeht):
    - Einbinden von Generatoren in Generatoren
    - Erneutes Auswürfeln von Einzeleigenschaften
    - Erzeugen von mehreren Ergebnissen für eine Eigenschaft (sowas wie besondere Eigenschaften -> leuchtet, ist einer Gottheit heilig)
    - Branching, Flusskontrolle - die Generierung kann auf verschiedenen Wegen je nach vorherigen Ergebnissen stattfinden


    Durch das Einbinden von Generatoren überlege ich, ob es sinnvollere Varianten für genaue Bezeichnungen im XML-Dokument gibt - sie können sich also noch etwas verändern, das sollte aber mit Find&Replace leicht zu korrigieren sein, wenn jemand schon ein Generator angefangen haben sollte. ^^

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Gut, ich habe viel Zeit damit verbracht, Informationen zu XML, Möglichkeiten und Limitierungen davon zu verschaffen. Dabei bin ich auf YAML gestoßen (YAML ain't Markup Language) Diese Sprache ist meiner Meinung nach nicht nur einfacher leserlich und leichter zu schreiben, es löst auch etwas, was durch Vernestung der Generatoren entsteht und nur auf Umwegen in XML gehen würde. Ich werde mir die beiden Sprachen noch nächste Woche anschauen und eine letztendlich auswählen, die in erster Linie mit GePGen benutzt werden kann. Wer weiß, vielleicht kommt später die andere noch hinzu? ^^


    Gut, ich bin ansonsten immer noch beim Sammeln von Idee und Entwurf - wenn ihr noch Ideen, Wünsche, Vorschläge, Hilfsangebote oder sonst noch was habt, schreibt bitte einfach hier noch herein! :D

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Also wenn du noch Ideen brauchst, wie man die Flusskontrolle in XML oder ähnlichem sinnvoll codiert, würde ich mir mal choose/when/otherwise, Variablen und das Template-System von XSLT anschauen.
    Aus meiner Sicht würde so ein Universalgenerator ein bisschen wie ein XSL-Stylesheet funktionieren, nur dass man kein zweites XML-Dokument als Datenquelle nimmt, sondern einen Zufallszahlengenerator.


    Ich habe beruflich unter anderem mit der Erzeugung und Verarbeitung von XML (und seit neuestem auch JSON) zu tun, also könnte ich dir wohl etwas helfen.

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."
    - Douglas Adams, "Das Restaurant am Ende des Universums"

  • Praktisch wäre es, wenn man zufällig ein (oder beliebig viele) Elemente aus einer Liste auslesen könnte, so dass diese sich nicht wiederholen. Zum Beispiel bei einem Charaktergenerator vier äusserliche Merkmale auswürfeln, ohne dass dreimal das gleiche dabei herauskommt.

    ~ Legend speaks of a beast ~

    ~ Three hundred miles from it’s tip to it’s tail ~
    ~ None have seen it, yet all know it’s name ~
    ~ Like the ark of the convenant, or the holy grail ~

  • Danke wieder für die Antworten! :)


    Also wenn du noch Ideen brauchst, wie man die Flusskontrolle in XML oder ähnlichem sinnvoll codiert, würde ich mir mal choose/when/otherwise, Variablen und das Template-System von XSLT anschauen.


    Diese Sachen sind sehr interessant! Für die Verarbeitung von XML wird es wohl sehr wichtig. Danke, dass du sie hier erwähnt hast.


    Ich habe beruflich unter anderem mit der Erzeugung und Verarbeitung von XML (und seit neuestem auch JSON) zu tun, also könnte ich dir wohl etwas helfen.


    Super! Ich freue mich! :D Wie würdest du dir diese Hilfe vorstellen - als eine Person, die ich zum Thema ausfragen kann oder aktiv als ein zweiter Developer?


    Die zweite Möglichkeit fände ich natürlich genial, es ist aber die Frage, wie viel Zeit und Energie du dem Projekt geben willst - Fragenbeantwortung braucht ja prinzipiell weniger und du musst dich nicht direkt engagieren.


    Praktisch wäre es, wenn man zufällig ein (oder beliebig viele) Elemente aus einer Liste auslesen könnte, so dass diese sich nicht wiederholen. Zum Beispiel bei einem Charaktergenerator vier äusserliche Merkmale auswürfeln, ohne dass dreimal das gleiche dabei herauskommt.


    Das lässt sich auf jeden Fall anstellen! ;D Nur noch eine Sache... vier Merkmale, ohne dass dreimal das gleiche herauskommt? Wenn es mit den unterschiedlichen Zahlen gewollt ist, dann freue ich mich über ein Erklärung. ;D


    Ich habe jetzt ein Entwurf des Programms da und fange dann erstmal mit den Core-Funktionen an, d. h. noch wird alles in einer main()-Funktion gesteuert von innerhalb des Programms. Diese Alpha-Version schreibe ich wohl als den Blumengenerator. Ohne die main()-Funktion kann GePGen dann natürlich als eine Bibliothek kompiliert und verwendet werden. Danach wird schon XML und/oder YAML folgen, mit den erste Generatoren gebaut werden können. ;) (ich war mit Umzug zu beschäftigt, um mir die Sprachen sehr genau anzuschauen - na gut, ja, ich habe mir XSLT angeschaut)


    So! Ich freue mich natürlich immer noch über Input, Ideen, Verbesserungsvorschläge und Hilfe in Einzelbereichen! Sie helfen alle dabei, etwas besseres aus dem Generator zu machen, etwas besseres, das wir alle benutzen können! ;)


    Liebe Grüße an alle, ich gehe dann wohl an die Arbeit!


    EDIT: Gut, der Grundstein ist gelegt, in den nächsten Tagen implementiere ich die Grundfunktionen der Klassen. Danach wird eine genauere Spezifizierung folgen zum Thema Generatoren erstellen und Implementierung davon, wie schon gesagt.

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Was die weitere Brauchbarkeit extrem verbessern könnte:
    multiple Ausgabe-Optionen
    i.e.:
    HTML/CSS - formatierte Ausgabe für Web-Seiten, könnte man den Export gleich an Bibliotheks-Funktionen übergeben und entweder Text-Dateien (sprich statische Struktur) oder - in einem zweiten Schritt - Einträge in einer Datenbank via SQL realisieren (dynamische Struktur). Zusammen mit Headern und CSS-Dateien ließe sich jedes beliebige CMS und jedes Design erreichen.
    XML - für Spreadsheets (es gibt ja noch die Excel-Freunde, gell?)
    CSV/SQL - für Datenbanken


    Die Ausgabe müßte dafür natürlich entsprechend weitreichend formulierbar sein (zB durch Templates). Hand in Hand damit geht natürlich auch:
    Grafik als Elementeintrag, ggf. als optionales Attribut des Knotens.


    Die Umsetzung in C++ ließe sich wohl ohne allzugroßen Aufwand in Java oder PHP konvertieren lassen und damit auch voll Webtauglich werden.

    - "To make an apple pie from scratch you must first invent the universe." Carl Sagan

    - "Mehr pseudo als Mary geht nicht."

  • Super! Ich freue mich! :D Wie würdest du dir diese Hilfe vorstellen - als eine Person, die ich zum Thema ausfragen kann oder aktiv als ein zweiter Developer?


    Also ich würde mir vor allem erstmal die Eingabesyntax anschauen und dann mal sehen, ob mir etwas einfällt, wie man sie noch verbessern könnte, was die Bedienung oder Umsetzbarkeit angeht. Wenn du sonst Fragen hast, kannst du sie natürlich gerne stellen.
    Dass ich selbst aktiv an GePGen programmieren werde, glaube ich im Moment eher nicht, da ich eigentlich kaum zu meinen eigenen Projekten komme.

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."
    - Douglas Adams, "Das Restaurant am Ende des Universums"

  • Was die weitere Brauchbarkeit extrem verbessern könnte:
    multiple Ausgabe-Optionen


    Das lässt sich natürlich machen und ist sehr einfach einzufügen an dieser Stelle - Objektorientierung ist toll! ;D


    Die Ausgabe müßte dafür natürlich entsprechend weitreichend formulierbar sein (zB durch Templates). Hand in Hand damit geht natürlich auch:
    Grafik als Elementeintrag, ggf. als optionales Attribut des Knotens.


    Über Grafik als Elementeintrag muss ich mir etwas Gedanken machen. So wie es mir im ersten Moment scheint, wird so ein Feature erst viel später zum Tragen kommen. Bei der Formulierung hast du natürlich Recht - ich denke die Ausgabe wird später mit einem Modul realisiert, sodass sich verschiedenste Arten davon auf jeden Fall implementieren lassen! Danke für die Idee - es macht wieder einen kleinen und sehr wichtigen Unterschied im Entwurf, da wird eine Funktion etwas verschoben, um das zu ermöglichen.


    PolliMatrix, danke!


    Gut, noch ein kurzes Update: die Core-Klassen habe ich als Templates formuliert, was bedeutet, dass sie auch zum Generieren von etwas anderem als Zeichenketten dienen könnten.

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Das lässt sich auf jeden Fall anstellen! ;D Nur noch eine Sache... vier Merkmale, ohne dass dreimal das gleiche herauskommt? Wenn es mit den unterschiedlichen Zahlen gewollt ist, dann freue ich mich über ein Erklärung. ;D

    Naja... es kommt sonst bei vier ausgewürfelten Eigenschaften halt dreimal "Hat keine Ahnung von Programmieren" und einmal "Sieht dafür cool mit Zigarette aus". :hae:


    Was ich noch hinzufügen wollte: Eine Möglichkeit, die Auswahl der möglichen Ergebnisse zu beeinflussen, dass man also beim Namensgenerator zum Beispiel ne Dropdown Liste hat in der man auswählen kann "Deutsche Namen, Englische Namen, Namen die sich auf Bier reimen" und so weiter. Gern auch mit selbst bestimmbaren Variablen, wenn man zum Beispiel den Namen eines Charakters schon hat und er als string im generierten Text auftauchen soll. Und Zahlen natürlich, Waffentalente für meinen Level 12 Krieger auswürfeln.

    ~ Legend speaks of a beast ~

    ~ Three hundred miles from it’s tip to it’s tail ~
    ~ None have seen it, yet all know it’s name ~
    ~ Like the ark of the convenant, or the holy grail ~

  • Eine Möglichkeit, die Auswahl der möglichen Ergebnisse zu beeinflussen, dass man also beim Namensgenerator zum Beispiel ne Dropdown Liste hat in der man auswählen kann "Deutsche Namen, Englische Namen, Namen die sich auf Bier reimen" und so weiter.


    Das wird mit unterschiedlichen Generatoren umgesetzt, die natürlich in andere eingebunden werden können, womöglich mit einem einfachen Verweis "benutz das jetzt, um diese Stelle zu füllen". Wie das dann mit einer GUI funktioniert, das wird noch geklärt werden müssen, jedoch wie schon gesagt: es können auch andere GUIs dazu programmiert werden, gerne auch von Leuten, die nicht Ich sind. ^^


    Gern auch mit selbst bestimmbaren Variablen, wenn man zum Beispiel den Namen eines Charakters schon hat und er als string im generierten Text auftauchen soll.


    Das ist ein interessanter Gedanke! Rein technisch gesehen ist der erste Gedanke, einen Generator anzulegen, der diese Variable zurückgibt und von vielen Stellen referenziert wird.


    Hm, da fällt mir auch noch etwas auf - wie ist es, wenn man einen Helden oder Heldin auswählt und ihn/sie mit er bzw. sie beschreiben will? Hm, ich denke mal darüber nach.


    Danke für den Einwurf Danchou! :D


    EDIT: So, noch ein Update: ich bin gerade dabei, in der einfachsten Form den Blumengenerator in einer main() zu implementieren und so den Code zu testen. Es wird also wohl bald ein Programm geben, der euch in der Konsole direkt Pflanzen generieren kann. ^^

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Kriegen wir das Teilchen dann auch schon zum Testen? %-)

    ~ Legend speaks of a beast ~

    ~ Three hundred miles from it’s tip to it’s tail ~
    ~ None have seen it, yet all know it’s name ~
    ~ Like the ark of the convenant, or the holy grail ~

  • Natürlich Danchou, ihr bekommt es zum Testen! ;D


    Allerdings wird es anfangs hardcoded sein, ihr könnt dann erstmal den Quellcode verändern, wenn ihr ein anderes Ergebnis haben wollt (oder das Teil in einem neuen Projekt verwenden). Ich implementiere gerade das Auslosen und ein Ausgabemuster und Spezialisierung für String, damit ein Prototyp schon funktioniert. Dann wird es wohl Zeit sein, den Code etwas zu säubern und danach geht es darum, Dateien auslesen zu können und auf dieser Grundlage alles nötige für die Generation erstellen.


    Den Quellcode wird es beim funktionierendem Prototyp auch auf GitHub geben.


    Und natürlich auch ein Update, der GePGen betrifft: bis Mittwoch bin ich damit beschäftigt, die alte Wohnung einzupacken. Ich werde also in dieser Zeit wohl kaum zum Programmieren kommen. Ich halte euch aber natürlich auf dem Laufenden! ;D

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • So, Update Time!


    In der Zeit der Abwesenheit, die etwas länger war als gedacht, hatte ich (fast) keinen Internetzugang und keinen Bücherzugang. Als ein cholerischer Sanguiniker konnte ich es aber nicht aushalten, an dem Projekt nicht zu arbeiten. Deshalb wurde der ganze Code des Prototyps von Grund auf neugeschrieben. Ich setze mich diese Woche an die Sachen, bei den ich die Hilfe des Internets gebraucht habe und an mögliche Bugs. ^^

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Bin gespannt, was rumkommt :3


    Wie sieht das mit Würfeln aus? Das lässt sich ja einfach machen, und jeder liebt doch Würfel. Und eine "Wenn - Dann - Ansonsten" Abfrage für Würfelergebnisse wäre super. Halt nein, nicht nur für Würfelergebnisse, auch für Strings.


    Wenn Klasse = Krieger dann Ausrüstung: 80% Breitschwert, 50% Streitaxt, 20% Sparschäler (aber nur eins von denen)


    ist das etwa deutlich? xD


    PRO ALLESGENERATOR! :dafuer:

    ~ Legend speaks of a beast ~

    ~ Three hundred miles from it’s tip to it’s tail ~
    ~ None have seen it, yet all know it’s name ~
    ~ Like the ark of the convenant, or the holy grail ~

  • In letzter Zeit war ich damit beschäftigt, meine Prüfungsvorleistungen zu erreichen und war nicht imstande weiter an dem Generator zu arbeiten. Ja, jetzt kommen die Prüfungen, da werde ich auch noch zu tun haben, aber ich denke ich komme schon dazu. ^^


    Auf jeden Fall gibt es nun die Spezifikation für XML-Dokumente! Wer sich also einen Generator schon mal bauen will - hier folgt die Beschreibung wie und im nächsten Post kommt ein Beispiel.


    Alles, was folgt gilt für die Generierung ausschließlich mit Zeichenfolgen, obwohl GePGen zukünftig auch für andere Datentypen verwendbar sein soll.
    Es gibt bisher 3 Arten von Generatoren, die man zusammenbauen kann:


    Code
    <sequentialGen></sequentialGen>


    Sequentieller Generator wird jeden Untergenerator durchlaufen und die Generierung darauf vornehmen.


    Code
    <selectiveGen></selectiveGen>


    Der selektive Generator würfelt ein Untergenerator aus und führt darauf die Generierung durch.


    Code
    <propertyVariationGen></propertyVariationGen>


    Dieser Generatortyp generiert den Auswuchs einer Eigenschaft aus einer Liste von Variablen, die sich auch ändern können.


    Einfache Variationen einer Eigenschaft werden mit <variation> definiert.

    Code
    <variation>grüne Blätter</variation>


    Diese Generatoren können ein Attribut namens weight haben, der ihre relative Wahrscheinlichkeit bestimmt.

    Code
    <selectiveGen>
       <propertyVariationGen>
          <variable>Pflanze</variable>
       </propertyVariationGen>
       <propertyVariationGen weight=2>
          <variable>Tier</variable>
       </propertyVariationGen>


    So hat dann Tier insgesamt die Wahscheinlichkeit von 2/3 während die Pflanze die Wahscheinlichkeit von 1/3 hat.


    Die Generatoren können Kinder namens <prefix> und <suffix> haben. Die Werte dieser Elemente werden vor bzw. hinter das Generierte gestellt.

    Code
    <selectiveGen>
       <prefix>Die Pflanze wird </prefix>
       <variation>wenige cm groß</variation>
       <variation>riesig</variation>
       <suffix>. </suffix>
    <selectiveGen>


    Jeder Generator ist einem Objekt vom Typ Property zugeordnet, auf dem später noch geschraubt werden kann.


    So kann man dann einen Generator zusammenbauen.

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

  • Loghaire
    Hast du schon etwas vom Generator geschrieben, oder bisher nur die Spezifikation geschrieben (nur ist natürlich relativ, immerhin ist das ja auch schon Arbeit)? Gerade bei so einem Generator ist es IMHO durchaus sinnvoll, das Plattformunabhängig zu machen. Vielleicht kann man ja zuerst gemeinsam an UML-Verlaufs- und Klassendiagrammen schrauben. Auf diese Weise ist es am Ende ein leichtes, dies in verschiedene Sprachen zu übertragen. Ansonsten, aus dem, was du schon hast, könnte ich aus dem Quellcode entsprechende UML-Diagramme zaubern.

  • Hast du schon etwas vom Generator geschrieben, oder bisher nur die Spezifikation geschrieben?


    Ich habe schon mit Code angefangen. Ich habe ihn auf GitHub hochgestellt (genau hier) - ich würde mich freuen, wenn du die Umformung davon in UML vornimmst, ich habe noch keine guten Werkzeuge dafür gefunden. Hast du vielleicht eine Empfehlung? (am besten auch für Linux?)


    Wenn ich es richtig gemacht habe, sind die inkompletten Codeabschnitte nicht hochgeladen, um eventuelle Verwirrung zu vermeiden.


    Natürlich freue ich mich, wenn du mir hilfst, die Logik hinter dem Programm richtig festzulegen. Wie stellst du dir die Kommunikation dazu vor? (PN, irgendein Chat, Teamspeak, noch etwas anderes?)

    Schwieriges dauert seine Zeit;
    Unmögliches dauert einfach nur etwas länger.

    - Fridtjof Nansen

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!