Würfel Wahrscheinlichkeiten Framework

Diese Freizeitprojekt bestand daraus, ein Programmgerüst zu schreiben, welches mit Würfeln analytisch korrekte Wahrscheinlichkeiten berechnen kann. Da es für Pen & Paper Rollenspiele ausgelegt ist, gab es direkt ein bestimmtes Set an Funktionalitäten im Fokus.

Gestartet habe ich das Projekt im März 2019. Hierfür verwende ich die IDE Pycharm und damit die Programmiersprache Python.

 

Funktionalitäten:

Kalkulieren und Einlesen von Eingabedaten
Jedes Würfelsystem benötigt Eingabedaten, z.B. 2d6, was bedeutet, dass zwei sechseitige Würfel gewürfelt und aufaddiert werden. Falls diese nicht vorhanden sind werden sie analytisch korrekt berechnet, indem alle möglichen Würfelaugen berechnet und die entsprechenden Operatoren angewendet werden. Diese werden aber auch abgespeichert, sodass die bei erneuter Verwendung nur noch eingelesen werden müssen.

Wahrscheinlichkeitskurve des RPG Systems „Ratten“.

 
Auswerten und Abspeichern von Ausgabedaten
Ergebnisse eines Tests werden direkt in den ausgabeformaten .txt und .csv abgespeichert. Besonders letzteres ist für künftige Verwendung dieser Daten ausgelegt worden.

 
Plotten der Kurven
Mit einer automatisierten Beschriftung ausgestatteten Grafikerstellung lässt einen direkt die erstellen Wahrscheinlichkeiten schön darstellen.

 
Verschiedene Modi
Man kann nicht nur die verschiedenen Ergebnisse einer Probe nach einem definiertem Würfelsystem berechnen lassen, sondern auch eine Durschnittskurve und VS Kurve. Letzteres beschreibt die Wahrscheinlichkeiten der verschiedenen definierten Skilllevel gleich oder höher gegenüber demselben System zu würfeln. Also im Grunde alle Wahrscheinlichkeiten eines Levels mit allen anderen Levels und das für jedes definierte Level.

Zuletzt gibt es noch den User-Study Modus, in welchem man zufällige Samples erhält und der User das Ergebnis einer „Probe“ selber berechnen und eingeben muss. Das System verfolgt hierbei benötigte Zeit und Fehlerrate der Methode und speichert alles anonym (via zufällig generierter ID) ab.