Pen & Paper - Rollenspiel > Werkstatt
Covella - Fantasy-Kalender - DSL für beliebige Systeme von Zeitmessung
Antariuk:
Ich glaube ich fände es einfacher wenn eine Zählung standardmäßig bei 1 beginnt und ich als Option dann einstellen kann das es alternativ doch 0 sein soll.
Talwyn:
Ich bin als Informatiker zwar gewöhnt bei der 0 mit dem Zählen zu beginnen. Aber angesichts der Tatsache, dass die DSL auch für Nicht-Programmierer intuitiv verwendbar sein soll schließe ich mich dem an.
Skeeve:
... und ich schliesse mich da auch ganz Talwyn an.
Aber um noch was anderes interessantes anzusprechen: was soll die DSL eigentlich machen bz. was gehört alles zu einer DSL?
Dient die nur als Basis für solche Kalender oder sollen auch Funktionen rein wie "gehe vom aktuellen Datum einen Tick weiter und nennen mir den neuen Zeiitpunkt/das Datum" (falls der kleinstmögliche Schritt ein Tag ist, könnte man auch sagen "gehe einen Tag weiter und gibt mir das Datum"). Andere denkbare Funktionen: Fragen wie "welches Datum ist in einem Monat?".
Mir ist mittlerweile bewusst geworden, dass hier auf der Erde der Schritt auf "einen Tag später" oder "eine Woche später" zwar reichlich einfach und klar definiert ist. Aber welcher Termin ist bei "einen Monat später" gemeint wenn das aktuelle Datum z.b. der 31.Oktober ist? Bei "ein Jahr später" haben hier ja auch all diejenigen ein kleines Problem, die am 29. Feburar geboren wurden.
Ich weiß schon warum es bei meiner Welt dreizehn Monate mit jeweils 28 Tagen (4 Wochen a 7 Tage) gibt... Wenn ich mir schon eine eigene Welt ausdenke, dann kann ich da ja auch ein paar Sachen einfach halten.
1of3:
Ja, was kann passieren, wenn man vom 31. Oktober einen Monat weiter geht? Entweder 30. November, also den letztmöglichen Termin oder Bumm. Deshalb meinte ich oben schon, dass es da zwei Methoden geben sollte.
"later 1 month" liefert den 30. November, "+ 1 month" einen Fehler. Vorzugsweise einen Compilerfehler.
Talwyn:
Ich denke man muss zwischen uniformen und nicht-uniformen Zeiteinheiten unterscheiden. Uniform wären z.B. Tage, Stunden Minuten und Sekunden. Für diese ist es einfach eine advanceBy Funktion zu definieren. Für alles andere muss man ein Verhalten definieren und dabei bleiben, da es nicht die eine sich aufdränge richtige Lösung gibt.
Gesendet von meinem SM-T813 mit Tapatalk
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln