首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js简易打地鼠游戏代码

以下是一个简单的 JavaScript 打地鼠游戏的代码示例:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>打地鼠游戏</title>
  <style>
    #gameBoard {
      display: grid;
      grid-template-columns: repeat(3, 100px);
      grid-gap: 10px;
    }

    .hole {
      width: 100px;
      height: 100px;
      background-color: #663300;
      border-radius: 50%;
      position: relative;
    }

    .mole {
      width: 80px;
      height: 80px;
      background-color: #000;
      border-radius: 50%;
      position: absolute;
      top: 0;
      left: 10px;
      display: none;
    }

    .hammer {
      width: 100px;
      height: 20px;
      background-color: #fff;
      margin-top: 10px;
      text-align: center;
      line-height: 20px;
      cursor: pointer;
    }
  </style>
</head>

<body>
  <div id="gameBoard">
    <div class="hole" id="hole1"><div class="mole" id="mole1"></div></div>
    <div class="hole" id="hole2"><div class="mole" id="mole2"></div></div>
    <div class="hole" id="hole3"><div class="mole" id="mole3"></div></div>
  </div>
  <div id="score">得分: 0</div>
  <script>
    const holes = document.querySelectorAll('.hole');
    const moles = document.querySelectorAll('.mole');
    let score = 0;

    function showMole() {
      const randomHole = holes[Math.floor(Math.random() * holes.length)];
      randomHole.querySelector('.mole').style.display = 'block';
      setTimeout(() => {
        randomHole.querySelector('.mole').style.display = 'none';
      }, 1000);
    }

    holes.forEach(hole => {
      hole.addEventListener('click', () => {
        if (hole.querySelector('.mole').style.display === 'block') {
          score++;
          document.getElementById('score').textContent = `得分: ${score}`;
          hole.querySelector('.mole').style.display = 'none';
        }
      });
    });

    setInterval(showMole, 1000);
  </script>
</body>

</html>

基础概念: 这是一个基于 HTML、CSS 和 JavaScript 的简单游戏。通过随机显示地鼠(mole)并检测用户的点击来计算得分。

优势:

  1. 简单易懂,适合初学者学习和理解基本的 Web 开发技术。
  2. 可以快速实现一个有趣的小游戏,增加用户的互动体验。

类型:这是一个基于浏览器的网页小游戏。

应用场景:

  1. 用于学习编程的教学示例。
  2. 在网站的娱乐板块提供给用户休闲娱乐。

可能遇到的问题及解决方法:

  1. 地鼠显示不随机:确保 Math.random() 函数正确使用,以生成随机的地鼠位置。
  2. 点击无效:检查事件监听器是否正确绑定到每个地洞元素,并且判断地鼠显示状态的逻辑是否准确。

希望这个示例对你有帮助!如果你还有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • C语言打地鼠游戏

    第一章  项目描述 1.1功能描述 打僵尸采用win32API编写,具体实现功能: A.仿照打地鼠游戏编写,只不过显示的是僵尸 B.僵尸出现是慢慢冒出来的 C.能统计得分,同时出现僵尸数量随分数上升...D.打击僵尸有爆炸特效 1.2所需技术 透明贴图,爆炸动画处理 第二章  总体设计 2.1打僵尸运行流程 太简单了,就像打地鼠。...第三章  详细设计 3.1背景地图 游戏背景地图是一张植物大战僵尸草地的图片,其中每个格子对应着将要出现的僵尸的位置。...hinstance,MAKEINTRESOURCE(IDB_BITMAPground), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); void backgroudDraw()//游戏进程背景绘制...ZOMBIE[i].iXpos, ZOMBIE[i].iYpos+100-cSumFlg*10, 80, cSumFlg*10, 0,0, RGB(255,255,255) ); } } } 3.3打击僵尸使其消失

    17120

    Python游戏开发,pygame模块,Python实现过打地鼠小游戏

    前言 今天给大家写一个打地鼠小游戏,废话不多说直接开始~ 开发工具 Python版本: 3.6.4 相关模块: pygame模块; 以及一些Python自带的模块。...原理简介 打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠~ 首先,让我们确定一下游戏中有哪些元素。...打地鼠打地鼠,地鼠当然得有啦,那我们就写个地鼠的游戏精灵类: '''地鼠''' class Mole(pygame.sprite.Sprite): def __init__(self, image_paths...,所以需要加载两张图,当地鼠被击中时从未被击中的地鼠状态图切换到被击中后的地鼠状态图(ps:图可能不像地鼠)。...然后我们再来定义一下锤子这个游戏精灵类,和地鼠类似,锤子也有未锤下去和已锤下去两种状态,只不过锤下去之后需要迅速恢复回未锤下去的状态,具体而言,代码实现如下: class Hammer(pygame.sprite.Sprite

    86730

    Python 0基础开发游戏:打地鼠(详细教程)VS code版本

    小编欢迎你加入,大家都是软件开发党,下个文章我会更新关于pycharm版本的打地鼠。 运行代码。...游戏开发的思路 游戏开发都有固定的套路,无论是打地鼠、愤怒的小鸟,还是西瓜忍者,甚至是王者荣耀这样的大型游戏,他们大致都遵循下面几个思路: 创建一个地图场景,上面可能有些道具。...打地鼠游戏 我们可以把经典的打地鼠游戏简化概括为: 地图和道具:随机位置出现地鼠图形 交互角色:控制锤子图形,点击地鼠图形使其消失 积分输赢:限定时间内击中地鼠图形的次数 核心玩法简化成一句话就是:点击随机出现图形...随机出现 随机出现就是随机位置,我们必须确保每一次花圆的pos位置都不同,而且应该是固定的几个地鼠洞位置。——别忘了我们要做打地鼠游戏。...到这里游戏看上去好了很多,但是还没有背景音乐,打地鼠的时候也没有音效,下一节我们继续添加声音。 添加音效 游戏里面的声音分为两种,一种叫音乐music,另一种叫音效sound。

    3.7K30

    《hdu 4540 威威猫打地鼠》

    pid=4540 Problem Description   威威猫最近不务正业,每天沉迷于游戏“打地鼠”。   ...每当朋友们劝他别太着迷游戏,应该好好工作的时候,他总是说,我是威威猫,猫打老鼠就是我的工作!   无话可说...   ...我们知道,打地鼠是一款经典小游戏,规则很简单:每隔一个时间段就会从地下冒出一只或多只地鼠,玩游戏的人要做的就是打地鼠。   ...假设:   1、每一个时刻我们只能打一只地鼠,并且打完以后该时刻出现的所有地鼠都会立刻消失;   2、老鼠出现的位置在一条直线上,如果上一个时刻我们在x1位置打地鼠,下一个时刻我们在x2位置打地鼠,那么...,此时我们消耗的能量为abs( x1 - x2 );   3、打第一只地鼠无能量消耗。

    40820

    从趣味游戏到编程思维——Scratch编程课程设计思想

    下面我们来看一个例子:打地鼠是孩子们很喜欢的小游戏,通过这个了解如何把编程思维的锻炼贯穿在创作中。...因此,一只和六只的代码是一样的,用Scratch的角色复制就可以了。为了屏幕整洁,我们先从一只地鼠开始,让它调皮的冒头出来。 2、识别锤子的状态:正常,移动,敲击。...3、给锤子和地鼠加上一个判断逻辑,如果锤子击中地鼠,则显示特效,表明成功得分。 4、调试完毕后,将一个地鼠复制6份,进行联调。 此时,一个基本版的打地鼠游戏就完成了。...在这个过程中,主要的难点并不是Scratch代码本身,而是让同学们理解这个思考的过程。...这是一个国内四年级女生,为校园“爱护环境,节约用水”环保宣传月活动做的小游戏: 如果说打地鼠游戏中我们更多考虑的是算法和逻辑部分,那这个小游戏则是艺术和创意的良好体现。

    3.2K50

    云查毒:避免恶意程序入侵的正确姿势

    常见的病毒入侵方式大致如下: 一、高速下载陷阱 举个例子,想给小朋友下载一款免费的单机小游戏:“打地鼠”,搜索结果发现都是第三方网站。...下方有两个选项,“高速下载”和“普通下载”,本着不薅羊毛白不薅的主旨点击“高速下载”,下载工具弹出的下载框里软件名称也是“打地鼠.exe”,文件大小却只有100多KB。...四目相对,一旁迫不及待想要玩打地鼠的小孩早已涨红了脸,咬紧了下嘴唇。...Content-Type: application/xml" -H "Authorization: Authorization " -d $' 打地鼠....myqcloud.com/virus/detect/" -k 获取到结果后,您可以根据返回的结果进行相应处置,可以看到示例中的文件“打地鼠.exe”是含有病毒的恶意程序

    1.3K20

    云查毒:避免恶意程序入侵的正确姿势

    常见的病毒入侵方式大致如下: 一、高速下载陷阱 举个例子,想给小朋友下载一款免费的单机小游戏:“打地鼠”,搜索结果发现都是第三方网站。...下方有两个选项,“高速下载”和“普通下载”,本着不薅羊毛白不薅的主旨点击“高速下载”,下载工具弹出的下载框里软件名称也是“打地鼠.exe”,文件大小却只有100多KB。...四目相对,一旁迫不及待想要玩打地鼠的小孩早已涨红了脸,咬紧了下嘴唇。...Content-Type: application/xml" -H "Authorization: Authorization " -d $' 打地鼠....myqcloud.com/virus/detect/" -k 获取到结果后,您可以根据返回的结果进行相应处置,可以看到示例中的文件“打地鼠.exe”是含有病毒的恶意程序,

    74240

    ARCore就要来国内了,小编教大家怎样愉快的“撩”AR

    如果是热爱打僵尸游戏的玩家,并且喜欢美剧《行尸走肉》的话,《Walking Dead: Our World》会是一款不错的AR游戏。...这是一款以电子宠物养成为主的游戏设备,小学时校园门口十元一个就能买到,并且一度风靡大陆。如今,虽然还是有许多人喜欢这类游戏,但已经不可能专门去买一款这样的游戏机了。...这款游戏中,玩家除了能养狗养猫,还可以玩AR捉迷藏。游戏设置在一个名为“Tamatown”的村庄中,玩家每通过一个关卡,就能找到不同的宠物。...沉迷打地鼠?那就打个够! 也许很多人会说,我才不要什么佛系游戏,我就是要发泄!那么,AR打地鼠了解一下?《MoleCatchAR》就是一款基于ARCore的打地鼠游戏。...游戏机制非常简单,就和商场中的打地鼠一样,当鼹鼠出现时,点它就完事了。据说这款游戏可以很好的缓解头部压力哦! ? 此外,虽然再没有其它玩法,不过不断的击破个人最佳成绩,也不失为一种乐趣。

    2K60

    一个高扩展、可视化低代码前端,详实、完整,你不来看看?

    接下来,以打地鼠逻辑为例,说一下逻辑编排的实现思路。...打地鼠的界面: 左侧9个按钮是地鼠,每隔1秒会随机活动一只(变为蓝色),鼠标点击活动地鼠为击中(变为红色,并且积分器上记1分),右侧上方的输入框为计分器,下面是两个按钮用来开始或者结束游戏。...游戏主控制器 在最顶层的组件 antd Row 上加一个一个游戏控制,控制器取名“游戏容器”: 这个控制器的可视化配置: 这个可视化配置的实现原理,改天再写吧,这里只介绍如何用它实现逻辑编排。...本例中的初始化事件中,实现了打地鼠的主逻辑: 监听“运行”变量,如果为true,启动一个信号发生器,信号发生器每1000毫秒产生一个信号,游戏开始;如果为false,则停止信号发生器,游戏结束。...地鼠控制器 在初始化事件中,地鼠订阅父组件”游戏容器“的活跃地鼠变量,通过条件判断节点判断是否跟自己编号一致,如果一致,把按钮的disabled属性设置为常量false,并启动延时器,延时2000毫秒以后

    1.8K180
    领券