You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计轮盘类游戏中coin coin-ct连续出现3或4次的次数?

统计coin coin-ct连续3/4次出现的完整次数

嘿,我来帮你搞定这个轮盘游戏的统计需求!要统计coin coin-ct连续出现3次或4次的完整次数,我们可以用JavaScript来实现,步骤很清晰:


第一步:理解需求

我们要找的是刚好连续3次或4次出现coin-ct的独立序列次数——比如连续3次ct算1次,连续4次算1次,而连续5次及以上的情况不算(如果你的需求是要统计连续段中包含的3/4次序列,我后面也会补充说明)。

第二步:提取游戏结果

首先我们需要从HTML中提取每一轮的游戏结果,把它们转换成一个便于处理的数组:

// 获取所有.icon-box下的coin元素
const coinElements = document.querySelectorAll('.icon-box .coin');
// 转换为结果类型数组(只保留ct/t/bonus)
const results = Array.from(coinElements).map(element => {
  if (element.classList.contains('coin-ct')) return 'ct';
  if (element.classList.contains('coin-t')) return 't';
  if (element.classList.contains('coin-bonus')) return 'bonus';
  return null; // 处理异常情况,比如未知类名
}).filter(result => result !== null); // 过滤无效结果

第三步:统计连续次数

接下来遍历结果数组,跟踪当前ct的连续次数,每当遇到非ct结果或遍历结束时,检查当前连续次数是否符合3/4次的条件:

let currentStreak = 0;
let streak3Count = 0; // 连续3次的次数
let streak4Count = 0; // 连续4次的次数
let totalValidStreaks = 0;

// 遍历结果数组
for (const result of results) {
  if (result === 'ct') {
    currentStreak++;
  } else {
    // 遇到非ct结果,检查当前连续次数
    checkValidStreak(currentStreak);
    currentStreak = 0; // 重置连续次数
  }
}
// 遍历结束后,检查最后一段连续的ct(如果有的话)
checkValidStreak(currentStreak);

// 定义检查连续次数的辅助函数
function checkValidStreak(streakLength) {
  if (streakLength === 3) {
    streak3Count++;
    totalValidStreaks++;
  } else if (streakLength === 4) {
    streak4Count++;
    totalValidStreaks++;
  }
  // 如果是连续5次及以上,这里不统计(若需要统计请看下文)
}

// 输出结果
console.log(`连续3次coin-ct的次数:${streak3Count}`);
console.log(`连续4次coin-ct的次数:${streak4Count}`);
console.log(`符合条件的总次数:${totalValidStreaks}`);

测试你的示例

用你提供的两个示例来验证:

  1. 示例1的结果数组是['ct','ct','ct'],遍历结束后会统计到1次连续3次的情况,streak3Count和totalValidStreaks都是1。
  2. 完整代码示例的结果数组是['ct','ct','bonus','t','ct'],最长连续ct次数是2,所以没有符合条件的次数,totalValidStreaks为0。

补充:如果需要统计连续段中包含的3/4次序列

如果你的需求是“在连续5次ct中,统计其中包含的连续3次和4次的次数”(比如连续5次ct包含1次连续4次和3次连续3次的序列),可以修改checkValidStreak函数:

function checkValidStreak(streakLength) {
  // 统计连续3次的序列数:长度n的连续段有n-3+1个连续3次序列
  if (streakLength >= 3) {
    streak3Count += streakLength - 3 + 1;
    totalValidStreaks += streakLength - 3 + 1;
  }
  // 统计连续4次的序列数:长度n的连续段有n-4+1个连续4次序列
  if (streakLength >= 4) {
    streak4Count += streakLength - 4 + 1;
    totalValidStreaks += streakLength - 4 + 1;
  }
}

比如连续5次ct的话,会统计到3次连续3次的序列,2次连续4次的序列,总次数是5。


内容的提问来源于stack exchange,提问作者John White

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:36:46