Metstübchen-Logo
Irdisches: Der Würfelserver im Metstübchen (Blog) {Würfelserver}
1.10.2008, 21:45
E-Mail – WWW
Dom
Ich habe gerade mit einer Neuimplementierung angefangen, die wesentlich flexibler ist, als das, was es bisher im Metstübchen gibt. Die Würfel-Ausdrücke werden lesbarer, aber auch länger. Und es gibt viel tollere Möglichkeiten.

Features:
- die üblichen Würfelangaben wie 2W20 oder 3W6+4W8+3. Hier werden die Würfelergebnisse einfach addiert (bzw. je nach Rechenoperation miteinader verrechnet). W, w, D und d sind als Würfelsymbol erlaubt. Man kann auch Vergleiche benutzen; das Ergebnis ist „wahr=1“ oder „falsch=0“. Damit bedeutet: „W6>2+W6>2“ soviel wie „Würfele mit 2W6 und zähle, wie viele davon mindestens 3 anzeigen“.
- Mit eckigen Klammern können Listen definiert werden, z.B. [W20,W12,W10,W8,W6,W4] bedeutet, dass die angegebenen Würfel geworfen werden und als Liste einzeln gespeichert werden
- Als Abkürzung für Listen mit gleichen Würfeln habe ich mir den x-Operator überlegt. Beispielsweise 5x[W20] bedeutet dasselbe wie [W20,W20,W20,W20,W20]. Man kann auch sowas wie W6x[W4,W8] schreiben.
- Man kann einzelne Werte mit Listen verrechnen, wodurch die Rechnung auf jedes einzelne Listenelement angewendet wird. Also ist „3x[W6]-2“ dasselbe wie [W6-2,W6-2,W6-2].
- Für diese Listen gibt es Funktionen, wie z.B. sortieren, summieren, bedingte Summen usw. Das sieht dann beispielsweise so aus: (sum:8x[W6]>=4). Damit zählt man also von 8W6 die Anzahl der Würfel, die mindestens 4 zeigen.
- Darüber hinaus will ich Bedingungen einführen, so dass man sowas wie (IF … THEN … ELSE …) schreiben kann. Außerdem Wiederholungen, die an eine Bedingung geknüpft sind: (WHILE … DO …) oder (REPEAT … UNTIL …).
- Weil das Ganze zu sehr viel Rechenzeit führen kann, wird die Länge von Listen und die Anzahl von Würfen pro Ausdruck auf je 100 begrenzt.
- Es soll möglich sein, eigene Funktionen zu definieren. Damit kann man dann typische Proben abkürzen, um das Ganze auch für „Laien“ benutzbarer zu machen. Also beispielsweise „Probe:=W20+#1>=#2“. Dann könnte man mit (Probe,5,15) eine Probe folgendes würfeln lassen: W20+5>=15
- Die Codes und die History soll so erhalten bleiben
- Das Ganze soll auch für IRC oder andere Zugriffe „von außen“ offen sein.

Bisher habe ich die Sprache definiert und angefangen, den Parser zu schreiben. Das ganze Projekt dauert aber mit Sicherheit noch eine Weile. Bis der neue Spieltisch komplett fertig ist, wird der alte wie bisher bestehen bleiben. Ich werde mich bemühen, zunächst eine einfache Version (das erste Feature) zu implementieren und das dann erweitern. In der Zwischenzeit wird es dann Alpha- und Betaversionen geben.

Wer möchte, kann hier Vorschläge für grundsätzliche Funktionen machen; vor allem solche, die auf Listen funktionieren.
2.10.2008, 00:07
E-Mail – WWW
kirilow
Klingt sehr cool. Werde gleich mal ein wenig herumprobiern. Das Problem ist nur, dass wenn die Ausdrücke komplex werden, man sie auch asch selber in der Programmiersprache der Wahl machen kann. So ging es mir jedenfalls mit Roll — ich bin nie warmgeworden damit.

Grüße
kirilow
2.10.2008, 07:47
luzifel
Hm… Wenn das Teil alles gleich verrechnet — wie soll ich dann die 3W20-Proben von DSA damit würfeln? *grübel*
2.10.2008, 08:16
E-Mail – WWW
Dom
@kirilow: Noch ist von der Neuimplementierung nichts online — wäre auch nicht sinnvoll. Bisher gibt es nur den alten Spieltisch, der in dieser Form schon einige Jahre existiert.

@luzifel: Die Würfelergebnisse/Rechnungen würde ich mit ausgeben (entweder so wie jetzt auch, oder zumindest für einzelne Würfel-Ausdrücke). Zudem würde ich denken, dass man die DSA-Proben dann auch tatsächlich umsetzen kann.
2.10.2008, 10:26
E-Mail – WWW
Haarald
Nett wäre noch die Möglichkeit, Würfel in Gruppen zu speichern und stückweise zu verbrauchen.

Außerdem wären Kartenstapel, von denen man ziehen kann.
2.10.2008, 20:15
E-Mail – WWW
Dom
Harald, interessante Idee. Ich habe nur gerade null Ahnung, wie man das überhaupt umsetzen kann. Wahrscheinlich mit speziell dafür gemachten Applikationen.
3.10.2008, 22:07
E-Mail – WWW
Dom
4.10.2008, 16:35
E-Mail – WWW
Dom
Was schon geht:

Der Würfelserver als Taschenrechner mit Zufallszahlen

Man kann in „normaler“ Schreibung Würfel und Zahlen miteinander verrechnen. Dabei können Klammern gesetzt werden, wie man es aus dem normalen Rechnen gewohnt ist.
Technisch werden dann die Würfelsymbole (also z.B. 5W6) durch entsprechende Zufallszahlen ersetzt und danach miteinander verrechnet. Oder verglichen, die Vergleichsoperatoren >, >=, <, <= sind auch schon implementiert. 1 als Ergebnis bedeutet „wahr“, 0 heißt „falsch“. Auf dieser Grundlage kann man sogar schon Poolsysteme realisieren, auch wenn es noch „etwas“ ungelenk ist (z.B. zählt „(w>3)+(w>3)+(w>3)“ die Anzahl der Würfel bei 3W6, die mindestens eine 4 zeigen).
zuletzt geändert: 4.10.2008, 16:35
5.10.2008, 17:07
E-Mail – WWW
Dom
Ich habe jetzt mal die History-Funktion gebastelt. Kommentare, Code und Name gehen jetzt auch in der neuen Version wie gewohnt.

Besonders erwähnenswert ist, dass es jetzt mit einer angehängten Option „text=1“ möglich ist, eine reine Text-Ausgabe der Würfel zu bekommen. So könnte der Würfelserver jetzt auch im IRC eingesetzt werden, wenn man ein entsprechendes Skript für den IRC-Client schreibt.
7.10.2008, 18:30
E-Mail – WWW
Dom
Da ich gerade krank zu Hause rumliege, geht es voran. Ich habe mit Listen angefangen, d.h. man kann jetzt sowas wie [w20,w20,w20] eintippen. Was noch nicht geht, sind Rechnungen mit Listen, d.h. eine Eingabe von [W20,W20,W20]*3 führt zu nix Gutem. Kommt dann aber als nächstes.

Zur Erinnerung, der Link: Würfelserver V2
9.10.2008, 10:00
E-Mail – WWW
Haarald
Das mit den Karten sollte gehen, allerdings mußt Du ihnen Namen geben und sie irgendwie speichern, weil einmal gezogene Karten nicht wieder vorkommen können.

Zum Beispiel so:

BlattPoker<Name>

Gibt Dir einen Pokerstapel mit Namen <Name>. Für ein Pokerdeck mit Jokern nimmst Du BlattJPoker oder so

BlattTarot<Name2>

Gibt Dir ein Tarot-Blatt mit Namen <Name2>

2Karte<Name>

zieht 2 Karten vom Poker-Deck. Die Ausgabe könnte so aussehen:

h9 pA (dass h/k rot und k/p schwarz sind, disambiguiert die Abkürzungen, Du kannst aber auch entsprechende Grafiken anzeigen.)

Mische<Name>

Mischt das Poker-Deck neu – die verbrauchten Karten kommen wieder in den Stapel. Kann man aber auch weglassen, weil BlattPoker<Name> das gleiche macht.

1Karte<Name2>

gibt Dir eine Tarotkarte:

Der Tod, auf dem Kopf

Mische… analog zum Pokerdeck.

9.10.2008, 14:05
E-Mail – WWW
kirilow
Gibt's in der neuen Version auch exploding dice?
9.10.2008, 21:32
E-Mail – WWW
Dom
Noch nicht.
Irdisches: Der Würfelserver im Metstübchen (Blog) {Würfelserver}
Impressum — Datenschutz — Über das MetstübchenRSS