gpt4 book ai didi

javascript - 取一组卡片对象并返回卡片的计数(加权值)

转载 作者:行者123 更新时间:2023-12-04 07:58:57 25 4
gpt4 key购买 nike

每张卡都有一个加权值。卡片 2 到 6 值一分; 7、8 和 9 值为零;和 10s,面卡和 A 值负一。这种算牌系统称为 HiLo 计数。倒数一副标准的 52 张牌时,您会注意到计数会上下波动,如果您正确计数,则始终以零结束。 cardCounter 函数应该接受一组卡片对象并返回卡片的计数(加权值)。它似乎没有产生准确的结果,我不知道为什么。

function cardCounter(array) {
var count = 0;
for (var i = 1; i < array.length; i++) {
var card = array[i];

if (card.card + i >= 2 && card.card + i <= 6) {
count++;
} else if (card.card + i >= 10 || card.card + i === 'face or ace') {
count--;
}
return count;
}
}

console.log(cardCounter([ { 'card 0': 2 }, { 'card 1': 6 }, { 'card 2': 8 }, { 'card 3': 'face or ace' } ]));
//output: 1
console.log(cardCounter([ { 'card 0': 'face or ace' }, { 'card 1': 9 }, { 'card 2': 8 }, { 'card 3': 'face or ace' } ]));
//output: -2

最佳答案

  • 您可以检索卡值 var card = array[i]["card " + i];不是 card.card + i .
  • 使用 i=0for并添加条件为 if (!isNaN(card))这将是 true当值为 number .如果是数字则检查值是否在 2-6 之间或 >=10 .
  • 如果值不是 number然后将其与 face or ace 进行比较.
  • 你应该有 return count;外面for环形。

  • 尝试如下完整代码。

    function cardCounter(array) {
    var count = 0;
    for (var i = 0; i < array.length; i++) {
    var card = array[i]["card " + i];
    if (!isNaN(card)) {
    if (card >= 2 && card <= 6) {
    count++;
    } else if (card >= 10) {
    count--;
    }
    } else if (card === 'face or ace') {
    count--;
    }
    }
    return count;
    }

    console.log(cardCounter([ { 'card 0': 2 }, { 'card 1': 6 }, { 'card 2': 8 }, { 'card 3': 'face or ace' } ]));
    //output: 1
    console.log(cardCounter([ { 'card 0': 'face or ace' }, { 'card 1': 9 }, { 'card 2': 8 }, { 'card 3': 'face or ace' } ]));
    //output: -2

    关于javascript - 取一组卡片对象并返回卡片的计数(加权值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66559204/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com