Я программирую эту действительно простую игру и хочу, чтобы урон, наносимый каждым игроком, был случайным при каждом ударе. По какой-то причине первое попадание имеет случайное значение, но следующие за ним значения точно такие же. Это похоже на то, как функция Math.floor(Math.random())
запускается один раз, затем останавливается и использует значение, которое ей было присвоено в первый раз.
Вот код:
this.attackpoints=Math.floor((Math.random()*10)+5);
this.attack=function(opponent) {
opponent.hitpoints-=this.attackpoints;
console.log(this.name + " has " + this.hitpoints + " hitpoints and " + this.energy + " energy.");
console.log(this.name + " just hit " + opponent.name + ".");
}
Math.floor(Math.random())
запускается один раз, затем останавливается и использует значение, которое ей было присвоено в первый раз. Бинго. Он работает только тогда, когда вы его вызываете. Откуда он мог знать, что вы не хотите удерживать исходное случайное значение? Каждый раз, когда вам нужно случайное число, вам нужно его сгенерировать. - person cookie monster   schedule 06.02.2014