Как сделать True Random с равными шансами в AS3?

#javascript #actionscript-3 #flash #random #flashdevelop

#javascript #actionscript-3 #flash #Случайный #flashdevelop

Вопрос:

Я разрабатываю игровой автомат «камень-ножницы-бумага» против компьютера. Нет ничего особенного, кроме игрока, играющего 3 раунда за игру.

Я использую этот код для генерации случайного числа от 1 до 3

 Math.floor(Math.random()*(1 3-1)) 1
  

1 = Ножницы, 2 = Бумага, 3 = Камень

Я не уверен, но этот код подходит для номера 2.

Это означает, что компьютер генерирует Paper-Paper-Paper, чтобы игрок заметил это, воспользовался преимуществом и выбрал scissor-scissor-scissor. Бьюсь об заклад, вы тоже это сделаете.

Как я могу генерировать реальную случайность в AS3?

Ответ №1:

Ваш код правильный, хотя его можно упростить до простого Math.floor(Math.random()*3) 1 . Это вернет числа от 1 до 3, и распределение должно быть равномерным (если только во Flash Player нет большой ошибки).

Вы можете проверить это, выполнив цикл по числу и подсчитав вхождение каждого числа. Например:

 var count = [0,0,0];
for (var i = 0; i < 10000; i  ) {
    var n = Math.floor(Math.random()*3)   1;
    count[n-1]  ;
}

trace(count);
  

Комментарии:

1. Я попробую это. Спасибо.