2016-10-10 9 views
2

Я в процессе кодирования простой игры BlackJack в Javascript. До сих пор у меня есть массив как это:Javascript- Lodash shuffle vs. Math.Random()

var deckArray = [ "card1", "card2",...,"card52" ] 

У меня есть функция «сделки» настроить так:

var deal = function(){ 
    var card = Math.floor(Math.random() * deckArray.length); 
    return deckArray.splice(card,1)[0]; 
}; 

Поскольку я уже использую Math.random случайным образом выбрать из deckArray, было бы лишним для меня включить функцию «shuffle» с Lodash?

var shuffle = function(){ 
    deckArray = _.shuffle(deckNames); 
}; 
+0

Либо хорошо. Кстати, как вы учитесь - было бы хорошей привычкой прекращать использование глобальных переменных и передавать колоду в качестве аргумента функции 'deal'. – zerkms

+0

И представление карт со строками тоже плохо. Строки для людей - компьютеры используют цифры. –

ответ

1

думаю. С помощью реальных карт мы перетасовываем колоду, а затем выбираем несколько карт сверху верхней части колоды. Это то, что вы, вероятно, будете делать с функцией тасования, тем самым моделируя использование в реальном мире.

С помощью Math.Random() вы произвольно выбираете карту из неубранной колоды. Ключевым моментом здесь является случайность (которая не действительно случайный битв). Итак, хотя это не моделируется после реального использования в мире, конечный результат тот же.

Я бы предложил Math.Random(), потому что он будет, хотя и не значительно, быть быстрее, чем использовать алгоритм _.shuffle (Fisher-Yates).

 Смежные вопросы

  • Нет связанных вопросов^_^