垄断选择随机卡和流行阵列

2024-05-08

Click

function click() {

        createCards();
        pickCard();

    }

选卡

function pickCard() {
        var x = Math.floor(Math.random() * ((15 - 0) + 1) + 0);
        var title = cards.chance[x].title;
        console.log(x + ". " + title);
        //pop the array we just picked
        //adjust Math.floor since there are only 15 cards to pick from instead of  16

    }

创建卡片

function createCards() {
cards = {

    chance: [{
        title: 'Advance to go',
        type: 'move',
        position: 40
    }, {
        title: "Advance to London",
        type: "move",
        position: 39
    }, {
        title: "Your ass is going to jail",
        type: "move",
        position: 10
    }, {
        title: "Advance to Rome",
        type: "move",
        position: 24
    }, {
        title: "Advance to Charles de Gaulle",
        type: "move",
        position: 15
    }, {
        title: "Advance to Amsterdam",
        type: "move",
        position: 11
    }, {
        title: "Go back 3 spaces",
        type: "movex",
        position: -3
    }, {
        title: "No drink and driving mate1",
        type: "bill",
        bill: 20
    }, {
        title: "Get out of Jail free card",
        type: "bill",
        bill: 150
    }, {
        title: "Pay school fees",
        type: "bill",
        bill: 150
    }, {
        title: "Speeding fine",
        type: "bill",
        bill: 150
    }, {
        title: "Bank pays you dividend",
        type: "bonus",
        bonus: 40
    }, {
        title: "You have won the competition",
        type: "bonus",
        bonus: 200
    }, {
        title: "Your building loan matures",
        type: "bonus",
        bonus: 200
    }, {
        title: "You are assessed for street repairs $40 per house $115 per hotel",
        type: "billx"
    }, {
        title: "House repairs $25 per house $100 per hotel",
        type: "billx"
    }]
};

}

好吧,我正在尝试选择一张随机卡,然后我想弹出它,但由于我使用随机生成器,我必须调整最小值、最大值,因为数组中会少 1 张卡。我也愿意接受更好的答案,更有效的方法。例如洗牌?我不知道那会如何运作。


您可以使用splice弹出元素并使用array.length而不是使用固定的数字。

   // if there are no more cards, create them

   var cardsLeft = cards.chance.length;
   if(cardsLeft == 0){
     createCards();
   }

    // Math  
    var x = Math.floor(Math.random() * cardsLeft);

    // pop
    cards.chance.splice(x, 1);  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

垄断选择随机卡和流行阵列 的相关文章

随机推荐