При написании программы для «броска костей» необходимо принять число и бросить число раз, а затем вывести это число 1-6

1

Ex из того, что я хочу, чтобы он выводил: Dice.rollNDice(6) => [x, x, x, x, x, x] или Dice.rollNDice(3) => [x, x, x]

Я знаю, что вторая часть моего кода ошибочна, но я не уверен, как ее исправить или что еще добавить к ней. Но мне нужно вызвать rollDie и вернуть массив, представляющий рулоны

rollDie: function() {
        return Math.floor(Math.random() * this.sides) + 1;
    },

   
    rollNDice: function(n) {
        rollDie(var result = [];
            for (var i =0,i<=[/1-6/] ;i++)
            )
Теги:

2 ответа

0
Лучший ответ

Решение
Я могу сказать, что вы новичок в этом языке. Зачем? Позвольте мне прокомментировать все ваши ошибки, которые вы сделали: (я исправил некоторые ваши отступы)

rollDie: function() { // Unexpected parenthesis: this is not how you define a
                      // function. Define a function by doing 'function rollDie()'
    return Math.floor(Math.random() * this.sides) + 1; // incorrect method of random
}, // remove comma

rollNDice: function(n) { // Same here: 'function rollNDice(n) {...}'
    rollDie(var result = []; // -.-
    for (var i =0,i<=[/1-6/] ;i++) // incorrect usage of for statement .-.
//           ^        ^
// bad formatting   ????? ._.
    ) // unexpected parenthesis ._.
// missing bracket from rollNDice ._.

Я покажу вам правильное использование Заявления:

for (var i = 0; i > n i++) { // (var i; while i is greater than n; increment i)
    // do stuff
}

Теперь я покажу вам, как получить случайное число от 1 до 6:

Math.floor((Math.random() * 6) + 1);

Почти готово. Теперь измените функцию rollDie. Вместо rollDie: function()..., я поменяю его на функцию rollDie(). Неожиданные скобки foo: function()... с foo: function()... Он отформатирован как function foo(). Но вы должны быть новичком в этом языке.

function rollDie() {
    return Math.floor((Math.random() * 6) + 1);
}

function rollNDice(n) {
    ...
}

Теперь определение переменной внутри параметра - это плохая практика, насколько я знаю. Или, по крайней мере, я не вижу его так часто, кроме как (var i...). Поместите результат в начало: var result = []. Теперь для заявления For.

for (var i = 0; i > n-1; i++) {
    result.push(rollDie()); // result.push(3) returns [3], and if 
}                           // result is [5, 4, 2], result.push(4)
return result               // makes it result[5, 4, 2, 4]

И это работает! Я покажу тебе:

function rollDie() {
    return Math.floor((Math.random() * 6) + 1);
}
function rollNDice(n) {
  var result = ["results:"];
  for (var i = 0; i < n; i++) {
      result.push(rollDie()); 
  }                          
  return result;               
}
console.log(rollNDice(4));

Выход: ["result", 6, 1, 6, 5]; оно работает!
0

Ваш синтаксис неверен.

Поскольку rollDie является свойством, вы должны называть его Dice.rollDie(). Вы не помещаете цикл for внутри списка аргументов функции, вы вызываете функцию внутри цикла for. И так как вы хотите вернуть массив всех рулонов, вам нужно построить массив.

rollNDice: function(n) {
    var dice = [];
    for (var i = 0; i < n; i++) {
        dice.push(Dice.rollDie());
    }
    return dice;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню