Как рассчитать сумму значений, сгенерированных циклом - PullRequest
0 голосов
/ 09 февраля 2019

Я начинающий в этом деле, поэтому ответ может быть очевидным и смотреть мне в глаза.Мне нужно сложить три числа, сгенерированные циклом.Числа являются случайными (между 1 и 6) и взяты из другого метода.Кажется, я не могу понять, как использовать любое из значений, сгенерированных циклом после его завершения.

Это для домашнего задания, в котором мы должны симулировать игру с бросанием костей, и частьзадание состоит в том, чтобы сложить три броска костей, чтобы отобразить счет.Я предполагаю, что должен сложить три броска, чтобы получить счет, но я 1) не знаю, где их сложить (внутри цикла? Вне его) и как мне в этом случае получитьзначения из цикла?) и 2) даже не знаю, если просто сказать, что оценка = roll + roll + roll - правильный путь.Я чувствую, что где-то что-то пропустил.

int score = getScore();
  System.out.println(score);
} 
static int diceRoll () {
  int range = (6-1) + 1;
  double roll = Math.random() * range;
  return (int)roll + 1;
}
public static int getScore () {
  int score = 0;
  int roll = 0;
  int i = 1;
  for (i=1; i<=3; i++) {
    roll = diceRoll();
    //I added this in order to make sure that the first part works
    System.out.print(roll + " ");
  }
  score = roll+roll+roll;
  return score;

В идеальном мире это будет отображать три случайных числа между (и включая) 1 и 6 (что он делает), а также сумму этих трех чисел(например, для 2, 4, 6, оценка будет 12).Иногда проверяется, но в большинстве случаев возвращает совершенно случайные числа.Я подозреваю, что это совершенно неправильный способ сделать это, но я не могу придумать, что делать.

1 Ответ

0 голосов
/ 09 февраля 2019

Код с комментариями

static void main(String[] args) {
    int score = getScore();
    System.out.println(score);
}

static int diceRoll() {
    int min = 1;
    int max = 6;
    return ((int)(Math.random() * ((max - min) + 1)) + min);//it'll return values between 1 and 6
}

public static int getScore() {
    int score = 0;
    int roll = 0;
    for (int i = 1; i <= 3; i++) {
        roll = diceRoll();//you first need save the returned value
        score = score + roll; //at this point you accumulate the returned values
        System.out.print(roll + " ");
    }
    return score;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...