我希望能够创建一个类似于老虎机结果的随机数数组。我知道如何提取随机数,但我想加权整个结果。
因此,例如在下面的代码中,我只想允许 row2 在 10000 次中返回 [6,6,6] 1。
我遇到的问题是我可以创建一个6
除了 10000 次之外不会显示的函数,但这不是我想要的。我想在行中显示它,但只是不想要那个特定的结果,除了 10000 次旋转中的一次。
我想为所有获胜盘设置不同的赔率。有什么建议吗?
到目前为止,这是我的代码:
var row1 = [0, 0, 0];
var row2 = [0, 0, 0];
var row3 = [0, 0, 0];
var bar1 = 1;
var bar2 = 2;
var bar3 = 3;
var cherry = 4;
var seven = 5;
var diamond = 6;
var balance = 100;
function loadBalance(buyIn) {
return (balance += buyIn);
}
var reelArray = [1, 2, 3, 4, 5, 6];
function randomChoice(arr) {
const randIndex = Math.floor(Math.random() * arr.length);
return arr[randIndex];
}
function spin() {
for (j = 0; j <= 2; j++) {
row1[j] = randomChoice(reelArray);
row2[j] = randomChoice(reelArray);
row3[j] = randomChoice(reelArray);
}
console.log(`${row1}\n${row2}\n${row3}`);
}
function play() {
spin();
checkWinner();
}
function checkWinner() {
if (row2[0] != row2[1]) {
console.log("you lost");
balance = balance - 1;
console.log(`bal: `, balance);
return balance;
} else if (row2[1] != row2[2]) {
console.log("you lost");
balance = balance - 1;
console.log(`bal: `, balance);
return balance;
} else {
console.log("you won!");
switch (row2[0]) {
case 1:
balance = balance + 20;
console.log(`bal: `, balance);
break;
case 2:
balance = balance + 40;
console.log(`bal: `, balance);
break;
case 3:
balance = balance + 80;
console.log(`bal: `, balance);
break;
case 4:
balance = balance + 20;
console.log(`bal: `, balance);
break;
case 5:
balance = balance + 200;
console.log(`bal: `, balance);
break;
case 6:
balance = balance + 1000;
console.log(`bal: `, balance);
break;
default:
break;
}
}
return;
}
function runIt() {
for (i = 0; i <= 100; i++) {
play();
}
}
runIt();