使用javascript switch case语句计算数组中元素的点数

count points for elements in array with javascript switch case statement

本文关键字:元素 数组 计算 javascript switch case 语句 使用      更新时间:2023-09-26

我正在创建一个头奖游戏,该游戏根据给定图像出现的次数生成数组。然后计算0(未使用的卡牌),1(不同的卡牌),2(2张相同的卡牌),3(相同的卡牌),4(4张相同的卡牌),5(5张相同的卡牌)出现的次数数组(aPunten)看起来像这样:

8,5,0,0,0,0

这意味着8乘以0,5乘以1,0乘以2 (pair), 0乘以3(trip), 0乘以4 (quads), 0乘以5

现在我需要给这些值分配一个分数,这就是我卡住的地方。我想循环遍历数组(aPunten),并使用开关箱来分配点。

组合积分:

5 equal cards= +50
4 equal cards= +25
3 equal cards + 1 pair  = +20
3 equal cards= +10
pair + pair = +5
pair= +2
5 different cards= +0

我希望有人能告诉我正确的方向

我自己设法弄清楚了,这可能不是最好的方法,但它是有效的。请给我看一个简短的版本

for (var k = 0; k < aPunten.length; k++) {
        switch (k) {
            case 0:
                combo = "Jammer u hebt verloren...";
                break;
            case 1:
                combo = "Jammer u hebt verloren...";
                break;
            case 2:
                if (aPunten[k] == 1) {
                    x += 2;
                    paar += 1;
                    combo = "1 paar!!";
                }
                if (aPunten[k] == 2) {
                    x += 5;
                    paar += 2;
                    combo = "2 paar!!";
                }
                break;
            case 3:
                if (aPunten[k] == 1) {
                    if (paar == 0) {
                        combo = "3 dezelfde!!";
                        x += 10;
                    } else if (paar == 1) {
                        combo = "3 dezelfde en 1 paar!!";
                        x += 20
                    }
                }
                break;
            case 4:
                if (aPunten[k] == 1) {
                    combo = "4 dezelfde !!";
                    x += 25;
                }
                break;
            case 5:
                if (aPunten[k] == 1) {
                    combo = "JAAACKKKKPOOOOOT!!";
                    x += 50;
                }
                break;
        }
    }