Я сделал это проще, перетасовывая колоду заранее с помощью rando js .com и затем выталкивая из колоды вместо сращивания. Все, что вам нужно сделать, чтобы перемешать с рандо js, это сказать randoSequence(deck)
.
var deck = [1, 1, 1, 2, 2, 2, 3, 3, 3];
function simGame(turns) {
var playHistory = []
var shuffledDeck = randoSequence(deck);
for (var i = 0; i < turns && shuffledDeck.length > 0; i++) {
var draw1 = (shuffledDeck.pop() || {value: 0}).value;
var draw2 = (shuffledDeck.pop() || {value: 0}).value;
playHistory.push(Math.max(draw1, draw2));
}
return playHistory;
}
console.log(simGame(5));
<script src="https://randojs.com/1.0.0.js"></script>
Посетите веб-сайт rando js, если у вас есть вопросы по этому поводу. Если у вас есть вопросы о чем-либо еще, оставьте мне комментарий, и я буду рад помочь больше. Я думаю, что самая запутанная часть могла бы быть такой:
(shuffledDeck.pop() || {value: 0}).value
Это просто говорит о том, что если массив shuffledDeck
пуст и, следовательно, pop()
возвращает undefined
, используйте значение 0
в качестве значения по умолчанию вместо разрешения undefined.value
выполнить, что приведет к ошибке.