js仿3366小游戏选字游戏


Posted in Javascript onApril 14, 2016

本文实例为大家分享了js仿3366小游戏中“你是色盲吗”游戏,大家先来挑战一下

游戏目标: 按画面中出现的文字的颜色来选择颜色,千万不要被颜色的困局打扰,眼睛一定要放亮哦,游戏开始时会有10分,每答对一题得一分,总共有10分,时间用完游戏会结束。
操作说明: 鼠标点击选择颜色

1、效果图:

原图:

js仿3366小游戏选字游戏

js仿3366小游戏选字游戏

模仿:

js仿3366小游戏选字游戏

代码:

<!DOCTYPE html>
<html>
 
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
      .wrap {
        width: 400px;
        height: 600px;
        border: 1px solid black;
        margin: 0 auto;
      }
       
      .head {
        width: 100%;
        height: 50px;
        overflow: hidden;
      }
       
      .time {
        float: left;
        width: 150px;
        height: 100%;
        line-height: 50px;
        font-size: 20px;
        text-align: center;
      }
       
      .score {
        width: 150px;
        height: 100%;
        float: right;
        line-height: 50px;
        font-size: 20px;
        /*text-align: center;*/
      }
       
      .middle {
        width: 100%;
        height: 450px;
      }
       
      .text {
        width: 100%;
        height: 300px;
        font-size: 200px;
        text-align: center;
        line-height: 300px;
      }
       
      .alert {
        width: 80%;
        height: 150px;
        margin: 0 auto;
        text-indent: 2em;
        font-size: 25px;
      }
       
      .bottom {
        width: 100%;
        height: 100px;
        overflow: hidden;
      }
       
      .bottomText {
        width: 20%;
        height: 100px;
        float: left;
        text-align: center;
        line-height: 100px;
        font-size: 70px;
        cursor: pointer;
      }
    </style>
  </head>
 
  <body>
    <div class="wrap">
      <div class="head">
        <div class="time">时间:10s</div>
        <div class="score">分数 :0</div>
      </div>
      <div class="middle">
        <div class="text">蓝</div>
        <div class="alert">根据上面的字的颜色从下面选择正确的字,选择正确自动开始</div>
      </div>
      <div class="bottom">
        <div class="bottomText">红</div>
        <div class="bottomText">绿</div>
        <div class="bottomText">黑</div>
        <div class="bottomText">蓝</div>
        <div class="bottomText">黄</div>
      </div>
    </div>
  </body>
  <script type="text/javascript">
    //变化的核心 获得不重复的乱序数组(数组中下标值)
     
    function random(min, max) {
      return parseInt(Math.random() * (max - min + 1)) + min;
    }
    //不重复的数组
    function randomArr() {
      var arr = [];
      while (arr.length < 5) {
        var temp = random(0, 4);
        if (arr.indexOf(temp) == -1) {
          arr.push(temp);
        }
      }
      return arr;
    }
    function fresh() {
      //中间字 变化
      var textIndex = random(0, 4);
       colorIndex = random(0, 4);
      textDiv.innerHTML = textArr[textIndex];
      textDiv.style.color = colorArr[colorIndex];
      //获取乱序下标数组
      var textRandoms = randomArr();
      var colorRandoms = randomArr();
      for (var i = 0; i < bottomDivs.length; i++) {
        //通过乱序下标获取文本,赋值给div
        bottomDivs[i].innerHTML = textArr[textRandoms[i]];
        bottomDivs[i].style.color = colorArr[colorRandoms[i]];
        //保存乱序下标
        bottomDivs[i].index = textRandoms[i];
      }
    }
    var textDiv = document.querySelector(".text");
    var bottomDivs = document.querySelectorAll(".bottomText");
    var timeDiv = document.querySelector(".time");
    var scoreDiv = document.querySelector(".score");
    var alertDiv = document.querySelector(".alert");
    var textArr = ["红", "绿", "蓝", "黄", "黑"];
    var colorArr = ["red", "green", "blue", "yellow", "black"];
     var colorIndex=0;
     var timer = null;
     var isplaying = false;
     var countDown = 10;
     var score = 0;
     fresh();
    for (var i = 0; i < bottomDivs.length; i++) {
      bottomDivs[i].onclick = function(){
        //判断
        if(colorIndex == this.index &&countDown!=0 ){
          //刷新
          score ++;
          isplaying =true;
          //分数增加
          fresh();
          scoreDiv.innerHTML = "分数: "+score ;
          alertDiv.style.opacity = 0;
        }else if(colorIndex != this.index &&isplaying){
          //点错时间减小
          countDown --;
          //更新时间变化
          timeDiv.innerHTML = "时间: " + countDown +"s";
          //判断清理定时器
          if(countDown <= 0){
            clearInterval(timer);
            isplaying = false;
          }
        }
      }
    }
    //定时器,监听游戏进行
    timer = setInterval(function(){
      if(isplaying){
        countDown --;
        timeDiv.innerHTML = "时间: " + countDown +"s";
        if(countDown <= 0){
          clearInterval(timer);
          isplaying =false;
          alert("game over!!");
        }
        //停止游戏
      }else{
         
      }
    },1000);
  </script>
 
</html>

以上就是本文的全部内容,希望大家能够挑战成功。

Javascript 相关文章推荐
Array对象方法参考
Oct 03 Javascript
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
Jun 27 Javascript
jQuery中prepend()方法用法实例
Dec 25 Javascript
详解js中构造流程图的核心技术JsPlumb
Dec 08 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
vue select组件的使用与禁用实现代码
Apr 10 Javascript
利用vue重构有赞商城的思路以及总结整理
Feb 21 Javascript
JavaScript中变量提升机制示例详解
Dec 27 Javascript
Element el-button 按钮组件的使用详解
Feb 01 Javascript
Javascript实现鼠标框选操作  不是点击选取
Apr 14 #Javascript
Node.js实现数据推送
Apr 14 #Javascript
node.js实现端口转发
Apr 14 #Javascript
即将发布的jQuery 3 有哪些新特性
Apr 14 #Javascript
谈一谈JS消息机制和事件机制的理解
Apr 14 #Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 #Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 #Javascript
You might like
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
Selenium定时刷新网页的实现代码
2018/10/31 Python
Django model反向关联名称的方法
2018/12/15 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Django 多环境配置详解
2019/05/14 Python
Python实现代码统计工具
2019/09/19 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
创业计划书中包含的9个方面
2013/12/26 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
万年牢教学反思
2014/02/15 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
关于军训的感想
2015/08/07 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL