docs: add dice docs
All checks were successful
CI / Get Changed Files (pull_request) Successful in 16s
Pull Request Labeler / labeler (pull_request_target) Successful in 4s
Label PRs based on size / Check PR size (pull_request) Successful in 12s
CI / eslint (pull_request) Has been skipped
CI / oxlint (pull_request) Has been skipped
CI / prettier (pull_request) Has been skipped
CI / test-build (pull_request) Has been skipped
CI / Backend Tests (pull_request) Has been skipped
CI / Checkstyle Main (pull_request) Has been skipped
CI / Docker frontend validation (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Has been skipped
CI / Playwright (pull_request) Has been skipped
Claude PR Review / claude-code (pull_request) Successful in 1m25s

This commit is contained in:
Phan Huy Tran 2025-06-11 13:51:54 +02:00
commit 1bca2b8611
4 changed files with 48 additions and 1 deletions

View file

@ -13,7 +13,7 @@
% Die Option (in den eckigen Klammern) enthält das längste Label oder % Die Option (in den eckigen Klammern) enthält das längste Label oder
% einen Platzhalter der die Breite der linken Spalte bestimmt. % einen Platzhalter der die Breite der linken Spalte bestimmt.
\begin{acronym}[WWWWW] \begin{acronym}[WWWWW]
%\acro{API}{Application Programming Interface} \acro{API}{Application Programming Interface}
\acro{CI}{Continuous Integration} \acro{CI}{Continuous Integration}
\acro{CI/CD}{Continuous Integration/Continuous Deployment} \acro{CI/CD}{Continuous Integration/Continuous Deployment}
\acro{CLI}{Command Line Interface} \acro{CLI}{Command Line Interface}

View file

@ -1,3 +1,4 @@
% !TEX root = Projektdokumentation.tex % !TEX root = Projektdokumentation.tex
\input{Inhalt/Einleitung} \input{Inhalt/Einleitung}
\input{Inhalt/CI} \input{Inhalt/CI}
\input{Inhalt/Dice.tex}

View file

@ -0,0 +1,46 @@
\clearpage
\section{Dice}
\subsection{Was ist Dice?}
Das Würfelspiel 'Dice' ist ein originelles Spiel der Casinoplattform Stake.com\footnote{Stake.com ist eine bekannte Online-Glücksspielplattform, die eine Vielzahl von Casinospielen und Sportwetten anbietet.}. Das Spiel dreht sich um einen virtuellen 100-seitigen Würfel,
bei dem Spieler die Parameter ihrer Wette beeinflussen können. Im Kern geht es darum,
einen zuvor festgelegten 'Roll Over'- oder 'Roll Under'-Betrag zu unter- oder überschreiten,
um eine Runde zu gewinnen. Spieler haben die Kontrolle über den Multiplikator und ihre Gewinnchancen:
Durch die Anpassung des Zielwerts können sie das Verhältnis
von Risiko und potenzieller Auszahlung steuern. Ein höherer Multiplikator verspricht zwar größere Gewinne,
reduziert jedoch gleichzeitig die Wahrscheinlichkeit eines erfolgreichen Würfelwurfs.
\includegraphics[scale=1]{dice.png}\\[1ex]
\subsubsection{Zufallszahlengenerierung}
Zur Generierung des Würfelwurfs verwendet diese Implementierung die Standardklasse java.util.Random.
Sie erzeugt eine pseudo-zufällige Zahl zwischen 1 und 100 (inklusive),
die das Ergebnis des virtuellen 100-seitigen Würfels darstellt.
\subsubsection{Spielablauf und Datenfluss}
Der zentrale Controller steuert den Spielablauf und empfängt die Anfragen vom Frontend. Jede Anfrage enthält die Eckdaten des gewünschten Würfelwurfs:
\begin{itemize}
\item \textbf{Einsatz:} Der gesetzte Münzbetrag.
\item \textbf{Wettart:} Soll der Würfel ``über'' oder ``unter'' einen Wert fallen?
\item \textbf{Zielwert:} Der vom Spieler festgelegte Referenzwert (1-100).
\end{itemize}
Zuerst prüft der Controller das Guthaben des Spielers. Bei unzureichenden Mitteln wird der Vorgang abgelehnt. Andernfalls übergibt er die weitere Ausführung an die Dienstklasse.
Die Dienstklasse übernimmt die eigentliche Logik des Würfelspiels:
\begin{enumerate}
\item Zieht den Einsatz vom Spielerkonto ab.
\item Erzeugt einen zufälligen Würfelwurf (Wert zwischen 1 und 100).
\item Prüft, ob der Wurf die Gewinnbedingung erfüllt (entsprechend Wettart und Zielwert).
\item Berechnet die Gewinnwahrscheinlichkeit und den sich daraus ergebenden Multiplikator.
\item Schreibt bei einem Gewinn den entsprechenden Betrag (Einsatz $\times$ Multiplikator) dem Spielerkonto gut.
\end{enumerate}
Das Ergebnis des Spiels wird an das Frontend zurückgesendet und enthält:
\begin{itemize}
\item Gewinnstatus (gewonnen/verloren)
\item Auszahlungsbetrag
\item Gewürfelten Wert
\end{itemize}