当然可以!以下是一个简单的消除游戏的代码示例:

HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>消除游戏</title>
    <style>
      #game-board {
        width: 300px;
        height: 300px;
        border: 1px solid black;
        margin: 0 auto;
      }
      .block {
        width: 30px;
        height: 30px;
        border: 1px solid black;
        display: inline-block;
        margin: 2px;
        cursor: pointer;
      }
      .selected {
        background-color: red;
      }
    </style>
  </head>
  <body>
    <h1>消除游戏</h1>
    <div id="game-board"></div>
    <button id="reset">重置</button>
    <script src="game.js"></script>
  </body>
</html>

JavaScript:

var gameBoard = document.getElementById("game-board");
var resetButton = document.getElementById("reset");
var colors = ["red", "blue", "green", "yellow", "purple"];
var blocks = [];
var selectedBlocks = [];

// 创建游戏板块
for (var i = 0; i < 100; i++) {
  var block = document.createElement("div");
  block.classList.add("block");
  block.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
  gameBoard.appendChild(block);
  blocks.push(block);

  // 将游戏板块添加点击事件
  block.addEventListener("click", function() {
    if (this.classList.contains("selected")) {
      this.classList.remove("selected");
      selectedBlocks.splice(selectedBlocks.indexOf(this), 1);
    } else {
      this.classList.add("selected");
      selectedBlocks.push(this);
    }

    // 如果选中的方块数量为2,检查它们的颜色是否相同
    if (selectedBlocks.length === 2) {
      if (selectedBlocks[0].style.backgroundColor === selectedBlocks[1].style.backgroundColor) {
        // 如果颜色相同,将它们从游戏板上删除
        selectedBlocks.forEach(function(block) {
          block.remove();
          blocks.splice(blocks.indexOf(block), 1);
        });
      }

      // 清除已选的方块
      selectedBlocks.forEach(function(block) {
        block.classList.remove("selected");
      });
      selectedBlocks = [];
    }
  });
}

// 重置游戏板
resetButton.addEventListener("click", function() {
  gameBoard.innerHTML = "";
  blocks = [];
  selectedBlocks = [];

  for (var i = 0; i < 100; i++) {
    var block = document.createElement("div");
    block.classList.add("block");
    block.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
    gameBoard.appendChild(block);
    blocks.push(block);

    block.addEventListener("click", function() {
      if (this.classList.contains("selected")) {
        this.classList.remove("selected");
        selectedBlocks.splice(selectedBlocks.indexOf(this), 1);
      } else {
        this.classList.add("selected");
        selectedBlocks.push(this);
      }

      if (selectedBlocks.length === 2) {
        if (selectedBlocks[0].style.backgroundColor === selectedBlocks[1].style.backgroundColor) {
          selectedBlocks.forEach(function(block) {
            block.remove();
            blocks.splice(blocks.indexOf(block), 1);
          });
        }

        selectedBlocks.forEach(function(block) {
          block.classList.remove("selected");
        });
        selectedBlocks = [];
      }
    });
  }
});

这个游戏的基本思路是,创建一个包含100个随机颜色方块的游戏板,当用户点击方块时,将其添加到已选方块列表中。如果已选方块数量为2,就检查它们的颜色是否相同。如果颜色相同,将它们从游戏板上删除。每当用户点击“重置”按钮时,游戏板就会被重新生成

麻烦你能帮我写一个困难点的消除网页小游戏吗

原文地址: https://www.cveoy.top/t/topic/cmPO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录