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 相关文章推荐
JQuery扩展插件Validate 1 基本使用方法并打包下载
Sep 05 Javascript
纯js网页画板(Graphics)类简介及实现代码
Dec 24 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
详解Bootstrap glyphicons字体图标
Jan 04 Javascript
JS实现隔行换色的表格排序
Mar 27 Javascript
vue移动端实现下拉刷新
Apr 22 Javascript
微信小程序实现按字母排列选择城市功能
Nov 25 Javascript
微信小程序学习总结(五)常见问题实例小结
Jun 04 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 Javascript
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
Angular4学习笔记router的简单使用
2018/03/30 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
详解python datetime模块
2020/08/17 Python
前端面试必备之CSS3的新特性
2017/09/05 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
机械设计职业生涯规划书
2013/12/27 职场文书
运动会通讯稿50字
2014/01/30 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
主题团日活动总结
2014/06/25 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
交通事故协议书范本
2014/11/18 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
观后感开头
2015/06/19 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android
Android中的Launch Mode详情
2022/06/05 Java/Android