Simulation Spiel des Würfelspieles in JAVA

Ich bin neu in Java und versuche zu lernen, indem Sie einige übungen, die ich online gefunden. Also bitte entschuldigen Sie mich, wenn dies ist zu naiv.

Dieser übung war, über ein Programm schreiben für das Spiel von craps mit den folgenden Regeln:

In dem Spiel von scheißt, eine pass line-Wette geht wie folgt vor sich: Zwei sechs-seitige Würfel sind
gerollt; der erste Wurf in einer craps-Runde wird als "come-out-roll."
Ein come out Wurf von 7 oder 11 gewinnt automatisch, und ein come out Wurf von 2, 3, oder 12
automatisch verliert. Wenn 4, 5, 6, 8, 9, oder 10 gerollt wird auf dem come out roll, Anzahl
wird "der Punkt." Behält der Spieler die Würfel zu Rollen, bis entweder 7 oder der Punkt ist
gerollt werden. Wenn der Punkt gerollt wird, der erste, dann der Spieler gewinnt die Wette. Wenn eine 7 zuerst gerollt wird,
dann verliert der Spieler.
Schreiben Sie ein Programm, das simuliert das Spiel von craps mit Hilfe dieser Regeln ohne menschliche
input. Anstatt zu Fragen, für eine Wette, das Programm soll berechnen, ob die
Spieler gewinnen oder verlieren. Sollte das Programm simulieren von Rollen der zwei Würfel und
berechnen Sie die Summe. Hinzufügen einer Schleife, so dass das Programm spielt als 10.000 Spiele. Hinzufügen
c ounters, die zählen, wie oft der Spieler gewinnt, und wie oft
Spieler verliert. Am Ende der 10.000 Spiele, berechnen die Wahrscheinlichkeit des Gewinnens
[D. H., Gewinne /(Wins + Losses)] und Ausgang diesen Wert. Auf lange Sicht, wer
gewinnen die meisten Spiele, Sie oder das Haus?

Hier ist der code, den ich geschrieben habe :

//GAME OF CRAPS
public static void main (String[] args)
{
  int dice1 = 0;
  int dice2 = 0;
  int scorenew = 0;
  int point = 0;
  int wins = 0;
  int loss = 0;

  for (int i = 0; i < 10000; i++)
  {
    System.out.println ("roll the dices");
    int score = roll (dice1, dice2);
    System.out.println ("\n score " + score);

    if (score == 11 || score == 7)
    {
      System.out.println ("\n Score = " + score);
      System.out.println ("you win");
      wins = wins + 1;
    }
    if (score == 2 || score == 3 || score == 12)
    {
      System.out.println ("\n Score = " + score);
      System.out.println ("you lose");
      loss = loss + 1;
    }
    else if (score == 4 || score == 5 || score == 6 || score == 8 || score == 9 || score == 10)
    {
      point = point + score;
      System.out.println ("\n Point = " + point);

      do
      {
        scorenew = roll (dice1, dice2);
        System.out.println ("\n Score new = " + scorenew);
        if (scorenew == point)
        {
          System.out.println ("\n you win");
          wins = wins + 1;
          point = 0;
          break;
        }
        if (scorenew == 7)
        {
          System.out.println ("\n you lose");
          point = 0;
          loss = loss + 1;
          break;
        }
      } while (scorenew != point || scorenew != 7);

    }
  }

  System.out.println ("\n number of wins = " + wins
    + " and number of loss = " + loss +
    " and the probability for winning a game = " + (double) wins / (wins + loss));
}

public static int roll (int d1, int d2)
{
  Random randomGenerator = new Random ();
  int dice1 = randomGenerator.nextInt (6) + 1;
  int dice2 = randomGenerator.nextInt (6) + 1;

  System.out.println ("\n dice1 = " + dice1 + " dice2 = " + dice2);

  int score = dice1 + dice2;
  return score;
}

Jedesmal, wenn ich den code ausführen der do-while-Bedingung wird zuerst ausgeführt, also bitte kann mir jemand helfen, herauszufinden, wohin ich gehe falsch gemacht?

Schreibe einen Kommentar