Ich hab doch nochmal in Richtung Array-> Werte bezogen, gedacht.
Die Ausführung hätte man besser gestalten können, aber nu ists gleich 6..
Zur Erklärung:
Es gibt zb 2 Stärkeverhältnisse. Die Differenz dieser Verhältnisse wird in Prozent erfasst.
Es gibt ein Array mit 30 festgelegten Werten, 10x0, 10x1, 10x2. 0 = unentschieden, 1 = stärker gewinnt, 2 = schwächer gewinnt.
Standardmäßig hat man also eine 33,333% Chance zu gewinnen/verlieren/unentschieden spielen.
Auf die 33,333% wird der Differenzprozentsatz gerechnet. Daraus ergbit sich der Gewinn-Chancenwert.
Nun wird errechnet wieviel Werte diese entgültige Prozentzahl im Array einnehmen würde.
Anschliessend wird ein Array initialisiert, und eine for Schleife mit dem Endwert von dem eben errechneten im Array enthaltenen Sieger Werten.
In dieser Schleife wird das Array also solange um den Siegerwert erweitert, wie Siegerwerte reinsollen (wurd ja grad ausgerechnet).
Anschliessend wird die Restzahl an übrigen Werten errechnet.
Hiervon wird der Prozentwert vom unentschieden (nun 50%) + dem anfänglichen Differenzprozentsatz multipliziert.
Nun hab ich die Werteanzahl für das UNentschieden. Diese werden wieder mit for Schleife im Array gespeichert.
Zum Schluss wird noch ausgerechnet wieviel Restwerte vorhanden sind, und mit dem Verlierer gefüllt.
Ich bin nun mal Testweise die Ausgabe durchgegangen,
49x gewann das starke Team
33x Unentschieden
17x gewann das schache Team
Prozentual gesehen ist das genau das was ich wollte, auch wenn es nur 99 statt 100 Werte/Berechnungen sind.
Einziges Manko ist die Berechnung der Unentschieden, da ich da einfach die prozentuale Überlegenheit + den restlichen vorkommenden Prozentsatz multipliziere, und aus diesem Gesamtsatz errechne, wieoft ein Unentschieden ins Array muss.
Hat da jmd eine Idee, wie ich besser auf das Unentschieden komm?
Wäre das grob in deinem Sinne, onemorenerd?
Natürlich kann in die Manschafststärke alles mögliche einfließen, so könnte die Heimmanschaft zb einen 10% Siegbonus bekommen, etc.
Die Ausführung hätte man besser gestalten können, aber nu ists gleich 6..
Zur Erklärung:
Es gibt zb 2 Stärkeverhältnisse. Die Differenz dieser Verhältnisse wird in Prozent erfasst.
Es gibt ein Array mit 30 festgelegten Werten, 10x0, 10x1, 10x2. 0 = unentschieden, 1 = stärker gewinnt, 2 = schwächer gewinnt.
Standardmäßig hat man also eine 33,333% Chance zu gewinnen/verlieren/unentschieden spielen.
Auf die 33,333% wird der Differenzprozentsatz gerechnet. Daraus ergbit sich der Gewinn-Chancenwert.
Nun wird errechnet wieviel Werte diese entgültige Prozentzahl im Array einnehmen würde.
Anschliessend wird ein Array initialisiert, und eine for Schleife mit dem Endwert von dem eben errechneten im Array enthaltenen Sieger Werten.
In dieser Schleife wird das Array also solange um den Siegerwert erweitert, wie Siegerwerte reinsollen (wurd ja grad ausgerechnet).
Anschliessend wird die Restzahl an übrigen Werten errechnet.
Hiervon wird der Prozentwert vom unentschieden (nun 50%) + dem anfänglichen Differenzprozentsatz multipliziert.
Nun hab ich die Werteanzahl für das UNentschieden. Diese werden wieder mit for Schleife im Array gespeichert.
Zum Schluss wird noch ausgerechnet wieviel Restwerte vorhanden sind, und mit dem Verlierer gefüllt.
PHP-Code:
$Manschaft_A = 73;
$Manschaft_B = 63;
// Differenz des Stärkenverhältnisses in % wird errechnet
$differenz = $Manschaft_A - $Manschaft_B;
$differenz_prozent_teil1 = $Manschaft_A / 100;
$differenz_prozent = $differenz / $differenz_prozent_teil1;
//Gesamtdifferenz wird errechnet
$gsmt_differenz_prozent = $differenz_prozent + '33,333';
//Berechnung der Häufigkeit des überlegenen Vorkomnisses
$array_haufigkeit_ueberlegen = '30' / '100' * $gsmt_differenz_prozent;
//Ueberlegenheit wird Prozentual ins Array gepackt
$array = array();
for($count = 1; $count < $array_haufigkeit_ueberlegen; $count++)
{
array_push($array,1);
}
//Restlich Vorhandene Positionen im Array werden errechnet
$restziffern = '30' - $array_haufigkeit_ueberlegen;
$restziffern2 = $restziffern / 100;
//Prozentualen Anteil vom Unentschieden am Restlichen Prozentsatz berechnen
$unentschieden = '50' + $differenz_prozent;
$unentschieden_haufigkeit = $restziffern2 * $unentschieden;
//Unentschieden wird Prozentual ins Array gepackt
for($count = 1; $count < $unentschieden_haufigkeit; $count++)
{
array_push($array,0);
}
//Restlichen Plätze für schwach werden ermittelt und ins array gepackt
$schwach = '30' - $array_haufigkeit_ueberlegen - $unentschieden_haufigkeit;
//Unterlegenheit wird Prozentual ins Array gepackt
for($count = 1; $count < $schwach; $count++)
{
array_push($array,2);
}
//Ausgabe zu Testzwecken
$zahl = 100;
for($count = 1; $count < $zahl; $count++)
{
$zufall = rand(0,30);
if ($array[$zufall] == 0) {
echo "Das SPiel endete <b>unentschieden</b>";
}
elseif ($array[$zufall] == 1) {
echo "Team <b>Stark</b> hat gewonnen";
}
elseif ($array[$zufall] == 2) {
echo "Team <b>Schwach</b> hat gewonnen";
}
echo "<br>";
}
49x gewann das starke Team
33x Unentschieden
17x gewann das schache Team
Prozentual gesehen ist das genau das was ich wollte, auch wenn es nur 99 statt 100 Werte/Berechnungen sind.
Einziges Manko ist die Berechnung der Unentschieden, da ich da einfach die prozentuale Überlegenheit + den restlichen vorkommenden Prozentsatz multipliziere, und aus diesem Gesamtsatz errechne, wieoft ein Unentschieden ins Array muss.
Hat da jmd eine Idee, wie ich besser auf das Unentschieden komm?
Wäre das grob in deinem Sinne, onemorenerd?
Natürlich kann in die Manschafststärke alles mögliche einfließen, so könnte die Heimmanschaft zb einen 10% Siegbonus bekommen, etc.
Kommentar