Skip to content
🎲 ToBeFree's Dice Fight Probability Calculator. 🎲 Specify a bonus for one player (integer or float), choose any number of dice & sides, throwing CPU power and memory at problems you fail to solve mathematically. ;)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
dicecalc-tobefree
dicecalc-tobefree-examples.ods
dicecalc-tobefree-examples.pdf
dicecalc-tobefree.c
german-explanation.txt

README.md

Ein kleines C-Projekt, welches die GNU Multiple Precision Library nutzt, um mit beliebig großen Zahlen arbeiten zu können.

Statt aufwändigen mathematischen Berechnungen wird rohe CPU-Kraft zur numerischen "Lösung" eines statistischen Spielproblems genutzt:

  • Zwei Spieler würfeln nacheinander jeweils zwei Würfel. Die Augenzahlen werden addiert, der Spieler mit der höheren Gesamtzahl gewinnt einen Kampf im Spiel "Roma".

  • Einer der Spieler erhält einen Bonus von X Punkten auf sein Würfelergebnis. Wie stark verändert sich die Gewinnwahrscheinlichkeit zu seinen Gunsten?

Das Programm ermöglicht auch, einzustellen, welcher Spieler bei gleichem Würfelergebnis gewinnen soll. Alternativ kann in einem solchen Fall automatisch nochmal gewürfelt werden.

Mit Hilfe dieses Programms konnten wir schließlich eine mathematische Funktion ermitteln, die in Abhängigkeit vom Bonus die Gewinnwahrscheinlichkeit des Spielers sehr gut beschreibt:

1/(e^(-x/2)+1)

(für X=-9 bis X=9)

Hierbei ist zu beachten, dass ein Bonus von +-10 Punkten bereits einen garantierten Gewinn bzw. Verlust verursacht, welcher durch eine Exponentialfunktion nicht dargestellt werden kann.


Dice Fight Win Probability Calculator

for non-equal fights (e.g. +1, -2, +0.5 bonus)

with custom number of dice with custom number of sides and the ability of adding 0.5 to an integer bonus

...using brute force and little mathematical intelligence, not thinking much about stochastics but rather throwing raw CPU power at problems I fail to solve. ;)

The original calculator was LibreOffice-Calc-based, but filling an .ods file with gigabytes of RAND's did not happen to be efficient for whatever reason. By the way, if you have ever wondered where the limits of Google Sheets are: if you're doing silly things, it's not hard to hit them.

Of course, this awesome product™ is licensed under the GPL 3.0, but you should rather find out how to calculate this mathematically instead of improving this crappy piece of code.

(C) February 2016, Tobias "ToBeFree" Frei


This program depends on the GNU Multiple Precision Arithmetic Library (GMP). To compile it, install libgmp-dev first:

sudo apt install libgmp-dev

With libgmp-dev installed, you can run the following GCC command:

gcc -Wall -o dicecalc-tobefree dicecalc-tobefree.c -lgmp

You should not see any warnings. If you do, please file a bug report on GitHub: https://github.com/ToBeFree/DiceCalculator


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

You can’t perform that action at this time.