zoukankan      html  css  js  c++  java
  • js 考记忆力得小游戏

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <script type="text/javascript">
        window.onload = function (){
             var oStar = document.getElementById("start");
             var oSpan = oStar.getElementsByTagName("span")[0];
    
             var oContent = document.getElementById("content");
             var oRect = document.getElementById("rect");
             var timer = null;
             var oTime = document.getElementById("time");
    
             var aImg = document.getElementsByTagName("img");
    
             var arrImg = ["http://img3.douban.com/view/photo/thumb/public/p1994200192.jpg",
                            "http://img5.douban.com/view/photo/thumb/public/p1994200528.jpg",
                            "http://img3.douban.com/view/photo/thumb/public/p1994200963.jpg",
                            "http://img3.douban.com/view/photo/thumb/public/p1994201400.jpg",
                            "http://img3.douban.com/view/photo/thumb/public/p1994201804.jpg",
                            "http://img5.douban.com/view/photo/thumb/public/p1994201968.jpg",
                            "http://img3.douban.com/view/photo/thumb/public/p1994202154.jpg",
                            "http://img5.douban.com/view/photo/thumb/public/p1994202276.jpg",
                            "http://img3.douban.com/view/photo/thumb/public/p1994202342.jpg"];
    
             var oScore = document.getElementById("score");
             var oFail = document.getElementById("fail");
             var oSuccess = document.getElementById("success");
             var level = [{"num":"3","timeGame":"10"},
                           {"num":"4","timeGame":"10"},
                           {"num":"6","timeGame":"15"},
                           {"num":"8","timeGame":"20"}];
    
    
             oSpan.onclick = function (){
    
                 var rating = 0;
                 starGame( level[rating].num,level[rating].timeGame,rating );
                 
             }
    
             // 游戏程序 参数分别代表 块数 游戏时间 等级
             function starGame( num,timeGame,rating){ 
    
                 oStar.style.display = "none";
                 oFail.style.display = "none";
                 oSuccess.style.display = "none";
                 oContent.style.display = "block";
                 oContent.setAttribute("off","0");
    
                 oTime.style.width = "440px";
                 oScore.innerHTML = 0;
                 oRect.innerHTML = "";
    
                 fillContent(num); 
                 setTimeout(function (){
                     for(var i = 0; i < aImg.length; i++){
                         aImg[i].src = "http://img3.douban.com/view/photo/thumb/public/p2191686093.jpg";
                     }
                     getTime( oTime,"width", -Math.floor( parseInt( getStyle(oTime,"width") )/timeGame ), timeGame, num*20, rating );
                 },3000);
             }
    
             //填充块
             function fillContent(size){
                 var arr = Mix(size,1,2);
                 //console.log(arr);
    
                 for(var i = 0; i < arr.length; i++){
                     oRect.innerHTML += "<img style = 'top:"+ 110*Math.floor(i/4) +"px; left:"+ 110*Math.floor(i%4) +"px' select = 'N' index = " + i + " address = " + arrImg[arr[i]] +" src = "+ arrImg[arr[i]] +" num = "+ arr[i] + ">";
                 }
             }
    
             function Mix( max,min,fre){
                 var arr = [];
                 for(var i = min; i <= max; i++ ){
                     arr.push(i);
                 }
                 var newarr = [getRandom(arr.length,1)];
                 for(var i = 0; newarr.length < arr.length*fre; i++ ){
    
                     var num = getRandom(arr.length,1);
    
                     if( toCon(num,fre-1 ) ){
                         newarr.push(num);
                     }
                 }
    
                 function toCon( num,fre ){
                     var iNow = 0;
                     for(var i = 0; i < newarr.length; i++ ){
                         if( num == newarr[i] && iNow != fre ){
                             ++iNow;
                         }else if( num == newarr[i] && iNow == fre ){
                             return false;
                         }
                     }
                     return true;
                 }
    
                 return newarr;
             }
    
             
    
             function getTime( obj,attr,speed,time,totle,rating ){
                 clearInterval(obj.timer);
    
                 selectRect(totle,rating);
                 obj.timer = setInterval( function (){
    
                     time--;
                     if( time != 0 ){
                         obj.style[attr] = parseInt( getStyle(obj,attr) ) + speed + "px";
                         if( parseInt(oContent.getAttribute("off")) ==  1  ){
                             clearInterval(obj.timer);
                         }
                     }
    
    
                     if( time == 0  ){
                         obj.style[attr] = "0px";
                         clearInterval(obj.timer);
                         for(var i = 0; i < aImg.length; i++ ){
                             aImg[i].src = aImg[i].getAttribute("address");
                         }
                         
                         //console.log( oContent.getAttribute("off") );
                         if( parseInt(oContent.getAttribute("off"))!=  1 ){
    
                             oContent.style.display = "none";
                             oFail.style.display = "block";
    
                             var oP = oFail.getElementsByTagName("p")[0];
    
                             oP.onclick = function (){
    
                                 oFail.style.display = "none";
                                 oStar.style.display = "block";
    
                                 oSpan.onclick = function (){
                                     starGame(level[0].num,level[0].timeGame,0);
                                 }
                             }
                         }
    
                     }
                 },1000)
             }
    
             function selectRect(totle,rating){
                 var selectNum = 0;
                 var selectVal = [];
                 var selectIndex = [];
                 for(var i = 0; i < aImg.length; i++ ){
                     aImg[i].style.cursor = "pointer";
                     aImg[i].onclick = function(){
                         selectNum++;
                         this.style.border = "1px red solid";
                         this.src = this.getAttribute("address");
                         this.setAttribute("select","Y");
                         selectVal.push( parseInt( this.getAttribute("num")) );
                         selectIndex.push( parseInt( this.getAttribute("index")) );
    
                         //console.log(selectVal );
                         if( selectNum == 2 ){
                             selectNum = 0;
    
                              if( selectVal.length == 2 ){
                                  if( selectVal[0] == selectVal[1]  && selectIndex[0]!= selectIndex[1] ){
    
                                      toSelectSuccess(totle,rating);
                                      oScore.innerHTML = parseInt( oScore.innerHTML ) + 20;
                                  } else {
                                      toSelectError();
                                  }
                              }
                             selectVal = [];
                             selectIndex = [];
                         }    
                     }
                 }
    
                 function toSelectError(){
                     setTimeout (function(){
                         var selArrE = [];
    
                         for(var i = 0; i < aImg.length; i++ ){
                             if( aImg[i].getAttribute("select") == "Y"){
                                 selArrE.push( parseInt(aImg[i].getAttribute("index")) );
                             }
                         }
    
                         for(var i = 0; i < aImg.length; i++ ){
                             for(var j = 0; j < selArrE.length; j++ ){
                                 if( aImg[i].getAttribute("index") == selArrE[j] ){
                                     aImg[i].src = aImg[i].getAttribute("address");
                                     aImg[i].src = "http://img3.douban.com/view/photo/thumb/public/p2191686093.jpg";
                                     aImg[i].style.border = "1px white solid";
                                     aImg[i].setAttribute("select","N");
                                 }
                             }
                         }
                         selArrE.length = 0;
                     },300);
                }
    
                function toSelectSuccess( totle,rating){
                     setTimeout (function(){
                         var selArrS = [];
                         for(var i = 0; i < aImg.length; i++ ){
                             if( aImg[i].getAttribute("select") == "Y"){
                                 selArrS.push( aImg[i].getAttribute("index") );
                             }
                         }
    
                         //console.log(totle);
    
                         for(var i = 0; i < aImg.length; i++ ){
                             for(var j = 0; j < selArrS.length; j++ ){
                                 if( aImg[i].getAttribute("index") == selArrS[j] ){
                                     aImg[i].src = aImg[i].getAttribute("address");
                                     aImg[i].style.display = "none";
                                     aImg[i].setAttribute("select","N");
                                 }
                             }
                         }
                         selArrS.length = 0;
    
                         if( parseInt( oScore.innerHTML ) == parseInt( totle ) ){
    
                             oContent.setAttribute("off","1");
                             oContent.style.display = "none";
                             oSuccess.style.display = "block";
    
                             var oP = oSuccess.getElementsByTagName("p")[0];
                             oP.onclick = function(){
                                 rating++;
                                 
                                 if( rating == 4 ){
                                     oStar.style.display = "block";
                                     oFail.style.display = "none";
                                     oSuccess.style.display = "none";
                                     oContent.style.display = "none";
                                     rating = 0;
    
                                     oSpan.onclick = function (){
    
                                         
                                         starGame( level[0].num,level[0].timeGame,0 );
                                         
                                     }
    
                                 }
    
                                 starGame( level[rating].num,level[rating].timeGame,rating);
                                 
                             }
                             
                         }
    
                         //console.log( selArr[0],selArr[1] );
                         var selArr = [];
                         //console.log( selArr[0],selArr[1] );
                         //var selArr = [];
                     },200);
            }
    
    
    
             }
    
                 
             
    
             
            
             
    
             function getStyle(obj,attr){
                 if(obj.currentStyle){
                     return obj.currentStyle[attr];
                 } else{
                     return getComputedStyle(obj)[attr];
                 }
             }
    
             function getRandom( max, min){
                 return Math.floor( Math.random()*( max - min + 1) + min );
             }
        }
        </script>
        <style>
            *{
                padding: 0px;
                margin: 0px;
            }
            #start{
                background: url(images/background.jpg) no-repeat;
                margin: 50px auto;
                position: relative;
                 800px;
                height: 500px;
                overflow: hidden;
                display: block;
            }
    
            #start span{
                background: pink;
                color: white;
                position: absolute;
                top: 400px;
                left: 700px;
                cursor: pointer;
                padding: 15px;
            }
    
            #content{
                background: #cccccc;
                margin: 50px auto;
                position: relative;
                 440px;
                height: 440px;
                display: none;
            }
            #content p{
                position: absolute;
                right: 5px;
                top: -20px;
            }
    
            #content #rect{
                 440px;
                height: 440px;
                position: relative;;
            }
    
            #content img{
                border: 1px white solid;
                 98px;
                height: 98px;
                margin: 5px;
                position: absolute;
            }
    
            #time{
                 440px;
                background: red;
                height: 30px;
                position: absolute;
                bottom: -30px;
            }
    
            #fail{
                background: black;
                margin: 50px auto;
                 440px;
                height: 440px;
                display: none;
            }
    
            #fail p {
                margin: 50px auto;
                font-size: 120px;
                color:white;
                cursor: pointer;
            }
    
            #success{
                background: red;
                margin: 50px auto;
                 440px;
                height: 440px;
                display: none;
            }
    
            #success p {
                margin: 50px auto;
                font-size: 120px;
                color:white;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id = "start">
            <span>start</span>
        </div>
    
        <div id = "content"  off = "0">
            <p>Score: <span id = "score">0</span>point</p>
            <div id = "time"></div>
            <div id="rect"></div>
    
        </div>
    
        <div id = "fail">
            <p>Failure!</p>
        </div>
    
        <div id = "success">
            <p>Success</p>
        </div>
    </body>
    </html>
  • 相关阅读:
    随笔12 java反射机制
    随笔11 J2EE中常用的名词解释
    随笔⑩ java中的基本数据类型的基础知识
    随笔⑨ java中的变量 --- 类变量(静态变量),final变量,成员变量,局部变量 java中的方法 --- 类方法(静态方法),final方法,成员方法(实例方法),构造方法
    随笔⑧ java中的存根类 --- Stub
    随笔⑦ Java中的比较 ==,equals以及精度对比较的影响
    随笔⑥ 关于线程 --- 线程操作的主要方法
    Jupyter notebook and Octave kernel installation
    [C7] Andrew Ng
    [C6] Andrew Ng
  • 原文地址:https://www.cnblogs.com/mayufo/p/4471268.html
Copyright © 2011-2022 走看看