I'm working on a dice rolling program.
Everything has worked so far until I got to this
Code so far:
function randomNum(max) {
return Math.floor(Math.random() * (max - 1 + 1)) + 1;
}
var names = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty'];
function rollDice(number, sides) {
return("Rolled "+ names[number] +" "+ names[sides] +" sided dice");
}
function randomDice(number, sides) {
function repeat(number) {
randomNum(sides);
if(sides > 20) sides==20;
}}
The problematic bit is this:
function randomDice(number, sides) {
function repeat(number) {
randomNum(sides);
if(sides > 20) sides==20;
}}
What I want is to say something like
randomDice(2, 20)
which should roll 2 twenty sided dice, but I can't get my randomNum function to repeat itself two times if I want it to roll multiple times.
EDIT: The problem has been answered, thank you everybody for helping :)
Simply change out your function repeat(number)
declaration to a for-loop: for( var n = 0; n < number; n++)
. This will get the repetition you desire:
function randomNum(max) {
return Math.floor(Math.random() * max) + 1; // No reason to do max+1-1
}
var names = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty'];
function rollDice(number, sides) {
return "Rolled " + names[number] + " " + names[sides] + " sided dice";
}
function randomDice(number, sides) {
var results = [] // Create array to store results
if (sides > 20) // Limit sides, but only needs to be done once (outside loop)
sides == 20;
for (var n = 0; n < number; n++) {
var name = names[randomNum(sides)]; // Translate the number to a word
results.push(name); // Add the word to the array
}
console.log(rollDice(number, sides)); // Display the context
return results; // Return the results as an array
}
console.log(randomDice(2, 20).join(', ')); // Display the values chosen as comma-separated values
I added a few more things, assuming this is the type of implementation you are looking for. Please adjust as necessary.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments