Das ist mein Code Ich soll das Spiel Craps simulieren: Ich bekomme den richtigen Gewinn und Verluste herauskommen, aber ich kann die Wahrscheinlichkeit nicht richtig bekommen. irgendwelche Vorschläge?Eine Simulation das Spiel Craps Java
bitte helfen Sie die Anweisungen sind: In dem Spiel Craps, eine Pass Line Wette geht wie folgt. Zwei sechsseitige Würfel werden gerollt; Der erste Würfelwurf in einer Würfelrunde wird "Come Out Roll" genannt. Ein Come-Out-Wurf von 7 oder 11 gewinnt automatisch und ein Come-Out-Wurf von 2, 3 oder 12 verliert automatisch. Wenn 4, 5, 6, 8, 9 oder 10 auf dem Come Out Roll gerollt werden, wird diese Zahl zum Punkt. Der Spieler würfelt weiter, bis entweder 7 oder der Punkt gewürfelt wird. Wenn der Punkt zuerst gewürfelt wird, gewinnt der Spieler den Einsatz. Wenn zuerst eine 7 gewürfelt wird, verliert der Spieler. Schreiben Sie ein Programm, das ein Craps-Spiel simuliert, indem Sie diese Regeln ohne menschliche Eingabe verwenden. Anstatt nach einer Wette zu fragen, sollte das Programm berechnen, ob der Spieler gewinnen oder verlieren würde.
Das Programm sollte das Rollen der beiden Würfel simulieren und die Summe berechnen. Fügen Sie eine Schleife hinzu, so dass das Programm 10.000 Spiele spielt. Fügen Sie Zähler hinzu, die zählen, wie oft der Spieler gewinnt und wie oft der Spieler verliert. Am Ende der 10.000 Spiele, berechnen Sie die Wahrscheinlichkeit zu gewinnen [d. H. Gewinne/(Gewinne + Verluste)] und geben Sie diesen Wert aus. Wer wird auf lange Sicht die meisten Spiele gewinnen, Sie oder das Haus? Hinweis: Um eine Zufallszahl x zu generieren, wobei 0 x ≤ < 1, verwenden Sie x = Math.random(); . Zum Beispiel Multiplikation mit 6 und die Umwandlung zu einer ganzen Zahl ergibt eine ganze Zahl, die zwischen 0 und 5.
public class Dice
{
public static void main(String[]args)
{
//declaring variables
int comeOutRoll1, comeOutRoll2;
int roll1, roll2;
int numW, numL;
int sum, sum2 = 0;
int thePoint = 0;
double probability;
//initializing variables
comeOutRoll1 = (int)(Math.random()*5);
comeOutRoll2 = (int)(Math.random()*5);
sum = comeOutRoll1 + comeOutRoll2;
numW = 0;
numL = 0;
for(int timesPlayed = 0; timesPlayed <= 10000; timesPlayed++)
{
switch(sum)
{
//adds how many wins and losses
case 2:
numL = numL +1;
break;
case 3:
numL = numL + 1;
break;
case 12:
numL = numL + 1;
break;
case 7:
numW = numW +1;
break;
case 11:
numW = numW +1;
break;
case 4:
thePoint = sum;
break;
case 5:
thePoint = sum;
break;
case 6:
thePoint = sum;
break;
case 8:
thePoint = sum;
break;
case 9:
thePoint = sum;
break;
case 10:
thePoint = sum;
break;
//if not any of these cases roll again
default:
roll1 = (int)(Math.random()*5);
roll2 = (int)(Math.random()*5);
sum2 = roll1 + roll2;
break;
}
if(sum2 == thePoint)
{
numW = numW +1;
}
else if(sum2 == 7)
{
numL = numL +1;
}
}
probability = (numW/(numW+numL));
System.out.println("Number of Wins: " + numW);
System.out.println("Number of Losses: " + numL);
System.out.println("The probability of winning is: " + probability + " percent");
}
}
Randbemerkung: Sie vermeiden können, indem er mehr 'case' Aussagen den gleichen Code für verschiedene Fälle Abtippen ohne' break', wie: 'Fall 4: Fall 5: Fall 6: Fall 8: Fall 9: Fall 10: thePoint = Summe; Pause; '. – BackSlash
Sooooo? Welche Ausgabe erhalten Sie, welche Ausgabe erwarten Sie? Ie., was ist die eigentliche Frage? – Gumbo
Sehr stimulierend diese Simulation ...;) – martijnn2008