【问题标题】:Building Casino game in JavaScript用 JavaScript 构建赌场游戏
【发布时间】:2022-10-09 09:32:01
【问题描述】:

我正在构建一个赌场游戏并遇到了问题。我有这个代码:

let images = [
document.getElementById("img1"),
document.getElementById("img5"),
document.getElementById("img9"),
document.getElementById("img11"),
document.getElementById("img13")

]

let sources = ["cherry.png", "lemon.png", "watermelon.png", "grape.png", "diamond.png", 
"luckycharm.png"]

所以我在这里要做的是检查至少 3 张图像是否具有相同的来源。我该怎么做?

【问题讨论】:

标签: javascript arrays


【解决方案1】:

我认为创建具有键(图像名称)和值(具有图像的 dom 元素数组)的对象是此应用程序的好方法。您可能想知道哪个图像出现在哪里。

let sources = ["cherry.png", "lemon.png", "watermelon.png", "grape.png", "diamond.png", 
"luckycharm.png"]

const images = ["cherry.png","cherry.png","watermelon.png","cherry.png","diamond.png"];

const makeChunks = () => {
  const chunks = {};
  
  images.forEach(
    (img, i) => img in chunks ? chunks[img].push(i) : chunks[img] = [i]
  );
  
  return chunks;
}

console.log(makeChunks())

const findTrio = () => {
  return Object.fromEntries(
    Object.entries(makeChunks()).filter((x) => x[1].length > 2)
  )
}

console.log(findTrio())

【讨论】:

    【解决方案2】:

    您可以使用 .getAttribute("src") 方法获取图像的“src”属性,然后可以在 JavaScript 中将它们作为字符串进行比较。 在你的情况下,这看起来像: images[0].getAttribute("src") === images[1].getAttribute("src")

    可能是:"cherry.png" === "lemon.png",这将返回 false。

    如果也不清楚,您绝对应该使用 for 循环或数组方法来遍历 images 中的所有元素。

    这可以通过一个 for 循环和 .filter 方法轻松完成:

    function threeMatch() {
      sources.forEach(source => {
        if(images.filter(
          image => image.getAttribute("src") === source
        ).length === 3) return true;
      });
      return false;
    }

    【讨论】:

    • 一个非常糟糕的建议。如果她/他需要比较 500 个来源并查看哪些来源出现 10 次怎么办?
    • 如果不清楚, === 示例只是表明 getAttribute 可用于返回源,并且可以比较它们以查看它们是否相同(因为它们都返回字符串)。在实际实现中,我希望他们使用循环来比较每个图像元素。
    • 我已经编辑了答案,以更清楚地说明这将如何在他们的程序中作为示例实现。
    【解决方案3】:

    如果您决定创建自己的在线赌场,那么我建议您查看最佳网站的示例以及它们的外观。这是最好的赌场列表:https://nativenewsonline.net/advertise/branded-voices/the-top-5-crypto-slots-you-can-check-out-today 一定要看看

    【讨论】:

      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多