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 相关文章推荐
js实现iframe动态调整高度的代码
Jan 06 Javascript
使用JavaScript动态设置样式实现代码(2)
Jan 25 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
Jul 09 Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
May 15 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
Javascript中prototype的使用详解
Jun 18 Javascript
Vue 过渡(动画)transition组件案例详解
Jan 22 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
JavaScript编程设计模式之构造器模式实例分析
Oct 25 Javascript
Vue.JS项目中5个经典Vuex插件
Nov 28 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小偷的核心程序
2007/04/09 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
php7性能提升的原因详解
2019/10/13 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python冒泡排序算法的实现代码
2013/11/21 Python
Python的Django框架使用入门指引
2015/04/15 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
SmartBuyGlasses英国:购买太阳镜和眼镜
2018/01/29 全球购物
中学生学习生活的自我评价
2013/10/26 职场文书
高中生学习的自我评价
2013/12/14 职场文书
新闻专业个人求职信
2013/12/19 职场文书
工地安全标语
2014/06/07 职场文书
节约粮食标语
2014/06/18 职场文书
国际金融专业自荐信
2014/07/05 职场文书
争先创优个人总结
2015/03/04 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
好员工观后感
2015/06/17 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
Python时间操作之pytz模块使用详解
2022/06/14 Python