基于javascript實現(xiàn)句子翻牌網(wǎng)頁版小游戲

字號:


    這篇文章主要介紹了基于javascript實現(xiàn)句子翻牌網(wǎng)頁版小游戲的相關(guān)資料,需要的朋友可以參考下
    本文實例為大家分享了js實現(xiàn)句子翻牌網(wǎng)頁版小游戲,供大家參考,具體內(nèi)容如下
    效果圖:
    名單
    實現(xiàn)思路:
    考察打字能力和記憶能力的益智小游戲。
    1.會先把一段文字顯示
    2.一小段時間后顯示背面
    3.輸入框輸入文字與文字全部對應(yīng)顯示正面
    具體代碼:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>句子翻牌</title>
    <link href="css/reset.css" rel="stylesheet" />
    <link href="css/fanpai.css" rel="stylesheet" />
    <script type="text/javascript" src="js/jquery-1.10.2.js"></script>
    <script type="text/javascript">
    $(function(){
     //ht5 dom
     var otestAudio=document.getElementById("test-audio");
     //data
     var data_all=[];
     data_all[0]=[
     {id:'0',text:'我,愛你,嗎,?',is:true,count:3,'url':'audio/1.mp3'},
     {id:'1',text:'親愛的,你,好嗎,?',is:true,count:3,'url':'audio/2.mp3'},
     {id:'2',text:'不知道,啊,!',is:true,count:2,'url':'audio/3.mp3'},
     {id:'3',text:'謝謝,你,說的,。',is:true,count:3,'url':'audio/4.mp3'},
     {id:'4',text:'也許,對吧,!',is:true,count:2,'url':'audio/5.mp3'},
     {id:'5',text:'聽,不懂,啊,!',is:true,count:3,'url':'audio/1.mp3'},
     {id:'6',text:'天天,向上,,,好好,學(xué)習(xí),。',is:true,count:4,'url':'audio/2.mp3'},
     {id:'7',text:'你,說的,不,對,!',is:true,count:4,'url':'audio/3.mp3'},
     {id:'8',text:'不要,問,為什么,!',is:true,count:3,'url':'audio/4.mp3'},
     {id:'9',text:'很,難,理解,你的話,。',is:true,count:4,'url':'audio/5.mp3'},
     {id:'10',text:'你,不愛你,嗎,?',is:true,count:3,'url':'audio/1.mp3'},
     {id:'11',text:'媽媽,你,好嗎,?',is:true,count:3,'url':'audio/2.mp3'},
     {id:'12',text:'想,知道,啊,!',is:true,count:3,'url':'audio/3.mp3'},
     {id:'13',text:'你,說的,。',is:true,count:2,'url':'audio/4.mp3'},
     {id:'14',text:'真的,也許,對吧,!',is:true,count:3,'url':'audio/5.mp3'},
     {id:'15',text:'完全,聽,不懂,啊,!',is:true,count:4,'url':'audio/1.mp3'},
     {id:'16',text:'要,努力,讀書。',is:true,count:3,'url':'audio/2.mp3'},
     {id:'17',text:'他,說的,不,對,!',is:true,count:4,'url':'audio/3.mp3'},
     {id:'18',text:'請,問,快了嗎,!',is:true,count:4,'url':'audio/4.mp3'},
     {id:'19',text:'哈哈,難,理解,你的話,。',is:true,count:4,'url':'audio/5.mp3'} 
     ];
     data_all[1]=[
     {id:'0',text:'你說出,你的,問題,去,改進,。',is:true,count:5,'url':'audio/1.mp3'},
     {id:'1',text:'我,怎么,知道,你,好不好,?',is:true,count:5,'url':'audio/2.mp3'},
     {id:'2',text:'不要,問,為什么,好嗎,?',is:true,count:4,'url':'audio/3.mp3'},
     {id:'3',text:'就,你,說的,是,對的,。',is:true,count:5,'url':'audio/4.mp3'},
     {id:'4',text:'大家,明天,一起,出去,郊游,。',is:true,count:5,'url':'audio/5.mp3'},
     {id:'5',text:'你,一定,要帥,,,一定,要低調(diào),。',is:true,count:5,'url':'audio/1.mp3'},
     {id:'6',text:'你,去了,你二大爺,家,了嗎,?',is:true,count:5,'url':'audio/2.mp3'},
     {id:'7',text:'天南,海北,,,眾人,皆是,。',is:true,count:4,'url':'audio/3.mp3'},
     {id:'8',text:'天與海,的,距離,就是,不愛你,。',is:true,count:5,'url':'audio/4.mp3'},
     {id:'9',text:'不知道,無罪,,,堅強,些,。',is:true,count:4,'url':'audio/5.mp3'},
     {id:'10',text:'大中華,兒女,,,華夏,子孫,。',is:true,count:4,'url':'audio/1.mp3'},
     {id:'11',text:'兒時,的,時光,是,美好的,。',is:true,count:5,'url':'audio/2.mp3'},
     {id:'12',text:'哪里,那么,多,秘密,。',is:true,count:4,'url':'audio/3.mp3'},
     {id:'13',text:'有,你,就是,晴天,,,對吧,!',is:true,count:5,'url':'audio/4.mp3'},
     {id:'14',text:'說的,和,真的,似的,,,太假了,!',is:true,count:5,'url':'audio/5.mp3'},
     {id:'15',text:'呵呵,,,凈,瞎扯淡,!',is:true,count:3,'url':'audio/1.mp3'},
     {id:'16',text:'行了,,,就,你,知道,?',is:true,count:4,'url':'audio/2.mp3'},
     {id:'17',text:'好好,學(xué)習(xí),,,才能,越來越好,。',is:true,count:4,'url':'audio/3.mp3'},
     {id:'18',text:'真的,無所依,,,孤獨的,我,。',is:true,count:4,'url':'audio/4.mp3'},
     {id:'19',text:'你知道,的話,就,說,出來嘛,!',is:true,count:5,'url':'audio/5.mp3'} 
     ];
     data_all[2]=[
     {id:'0',text:'我,愛你,嗎,?',is:true,count:3,'url':'audio/1.mp3'},
     {id:'1',text:'親愛的,你,好嗎,?',is:true,count:3,'url':'audio/2.mp3'},
     {id:'2',text:'不知道,啊,!',is:true,count:2,'url':'audio/3.mp3'},
     {id:'3',text:'謝謝,你,說的,。',is:true,count:3,'url':'audio/4.mp3'},
     {id:'4',text:'也許,對吧,!',is:true,count:2,'url':'audio/5.mp3'},
     {id:'5',text:'聽,不懂,啊,!',is:true,count:3,'url':'audio/1.mp3'},
     {id:'6',text:'天天,向上,,,好好,學(xué)習(xí),。',is:true,count:4,'url':'audio/2.mp3'},
     {id:'7',text:'你,說的,不,對,!',is:true,count:4,'url':'audio/3.mp3'},
     {id:'8',text:'不要,問,為什么,!',is:true,count:3,'url':'audio/4.mp3'},
     {id:'9',text:'很,難,理解,你的話,。',is:true,count:4,'url':'audio/5.mp3'},
     {id:'10',text:'你,不愛你,嗎,?',is:true,count:3,'url':'audio/1.mp3'},
     {id:'11',text:'媽媽,你,好嗎,?',is:true,count:3,'url':'audio/2.mp3'},
     {id:'12',text:'想,知道,啊,!',is:true,count:3,'url':'audio/3.mp3'},
     {id:'13',text:'你,說的,。',is:true,count:2,'url':'audio/4.mp3'},
     {id:'14',text:'真的,也許,對吧,!',is:true,count:3,'url':'audio/5.mp3'},
     {id:'15',text:'完全,聽,不懂,啊,!',is:true,count:4,'url':'audio/1.mp3'},
     {id:'16',text:'要,努力,讀書。',is:true,count:3,'url':'audio/2.mp3'},
     {id:'17',text:'他,說的,不,對,!',is:true,count:4,'url':'audio/3.mp3'},
     {id:'18',text:'請,問,快了嗎,!',is:true,count:4,'url':'audio/4.mp3'},
     {id:'19',text:'哈哈,難,理解,你的話,。',is:true,count:4,'url':'audio/5.mp3'} 
     ];
     data_all[3]=[
     {id:'0',text:'你說出,你的,問題,去,改進,。',is:true,count:5,'url':'audio/1.mp3'},
     {id:'1',text:'我,怎么,知道,你,好不好,?',is:true,count:5,'url':'audio/2.mp3'},
     {id:'2',text:'不要,問,為什么,好嗎,?',is:true,count:4,'url':'audio/3.mp3'},
     {id:'3',text:'就,你,說的,是,對的,。',is:true,count:5,'url':'audio/4.mp3'},
     {id:'4',text:'大家,明天,一起,出去,郊游,。',is:true,count:5,'url':'audio/5.mp3'},
     {id:'5',text:'你,一定,要帥,,,一定,要低調(diào),。',is:true,count:5,'url':'audio/1.mp3'},
     {id:'6',text:'你,去了,你二大爺,家,了嗎,?',is:true,count:5,'url':'audio/2.mp3'},
     {id:'7',text:'天南,海北,,,眾人,皆是,。',is:true,count:4,'url':'audio/3.mp3'},
     {id:'8',text:'天與海,的,距離,就是,不愛你,。',is:true,count:5,'url':'audio/4.mp3'},
     {id:'9',text:'不知道,無罪,,,堅強,些,。',is:true,count:4,'url':'audio/5.mp3'},
     {id:'10',text:'大中華,兒女,,,華夏,子孫,。',is:true,count:4,'url':'audio/1.mp3'},
     {id:'11',text:'兒時,的,時光,是,美好的,。',is:true,count:5,'url':'audio/2.mp3'},
     {id:'12',text:'哪里,那么,多,秘密,。',is:true,count:4,'url':'audio/3.mp3'},
     {id:'13',text:'有,你,就是,晴天,,,對吧,!',is:true,count:5,'url':'audio/4.mp3'},
     {id:'14',text:'說的,和,真的,似的,,,太假了,!',is:true,count:5,'url':'audio/5.mp3'},
     {id:'15',text:'呵呵,,,凈,瞎扯淡,!',is:true,count:3,'url':'audio/1.mp3'},
     {id:'16',text:'行了,,,就,你,知道,?',is:true,count:4,'url':'audio/2.mp3'},
     {id:'17',text:'好好,學(xué)習(xí),,,才能,越來越好,。',is:true,count:4,'url':'audio/3.mp3'},
     {id:'18',text:'真的,無所依,,,孤獨的,我,。',is:true,count:4,'url':'audio/4.mp3'},
     {id:'19',text:'你知道,的話,就,說,出來嘛,!',is:true,count:5,'url':'audio/5.mp3'} 
     ];
     var guan_arr=[
     {n:'第一關(guān)',c:'正常語序'},
     {n:'第二關(guān)',c:'熟練熟悉'},
     {n:'第三關(guān)',c:'注意:詞語打亂了'},
     {n:'第四關(guān)',c:'全神貫注'},
     {n:'第五關(guān)',c:'困難語序'}
     ];
     //base
     var current_guan=1;//當(dāng)前所在關(guān)卡
     var current_index=0;//答對記錄數(shù)
     var dong=null;//全局動畫
     var alltime=300;//答題時間
     var iskey=true;//是否按鍵可用
     var count=0;//詞語記錄數(shù)
     var subindex=null;//子記錄鍵
     var starttime=0;//開始時作答時間
     //event
     $(".game-fp-start").click(function(){
     $(".game-fp-name").hide();
     $(".game-fp-sm").hide();
     $(".game-fp-start").hide();
     init();
     });
     $(".game-fp-tools-see").children("dt").click(function(){
     funopen();
     setTimeout(function(){
     funclose();
     },2000); 
     });
     $("#game-fp-input").children("input").keyup(function(){ 
     if(iskey){
     var stext=$(this).val();
     matchval(stext);
     next($("#game-fp-words").children("div").length);
     }else{};  
     });
     $(".game-fp-tools-pause").click(function(){
     if($("#game-fp-input").children("input").prop('disabled')==false){
     clearInterval(dong);
     $("#game-fp-input").children("input").attr('disabled','disabled'); 
     $("#game-fp-pause").show();
     }else{} 
     });
     $("#game-fp-sta").click(function(){ 
     $("#game-fp-input").children("input").removeAttr('disabled'); 
     $("#game-fp-pause").hide();
     $("#game-fp-input").children("input").focus();
     inctime();
     }); 
     $("#game-fp-reset-btn").click(function(){ 
     current_guan=1;
     current_index=0;
     alltime=300;
     iskey=true;
     subindex=null; 
     count=0;
     for(var i=0;i<data_all.length;i++){
     for(var j=0;j<data_all[i].length;j++){
     data_all[i][j]['is']=true;
     }; 
     }; 
     $("#game-fp-reset").hide();
     init();
     }); 
     $(".game-fp-tools-skip").children("dt").click(function(){ 
     if($("#game-fp-input").children("input").prop('disabled')==false){
     if($(this).children("span").html()<=0){
     }else{
     $(this).children("span").html($(this).children("span").html()-1);
     $("#game-fp-words").children().remove();
     fundata();
     }; 
     }else{} 
     }); 
     $(window).keyup(function(event){
     switch (event.which)
     {
     case 35://end
     $(".game-fp-tools-pause").trigger("click");
     break;
     case 36://hpme
     break;
     case 33://pageup
     $(".game-fp-tools-see").children("dt").trigger("click");
     break;
     case 34://pagedown
     $(".game-fp-tools-skip").children("dt").trigger("click");
     break;
     } 
     });
     //handel
     function matchval(stext){
     var real=stext;
     var delay=0;
     $("#game-fp-words").children("div").each(function(index, element) {
     var ishas=stext.search($(this).children("span").text());
     var that=$(this);
     if(ishas>-1 && $(this).attr("is")=="0"){
     delay=parseInt(delay)+parseInt(80);
     $(this).attr("is","1");
     addfen(10);
     setTimeout(function(){
      that.removeClass("close").addClass("open");
      that.children("em").addClass("feiqi");
     },delay);
     real=real.replace($(this).children("span").text(),""); 
     }else{
     };    
      });
     $("#game-fp-input").children("input").val(real);
     };
     function addfen(num){
     $("#game-fp-fen").find("input").val(parseInt($("#game-fp-fen").find("input").val())+parseInt(num));
     };
     function next(zlen){
     if($("#game-fp-words").children("div[is='1']").length==zlen && $("#game-fp-input").children("input").val().length==0){
     iskey=false;
     success();
     }else{};
     };
     function success(){
     showok();
     var alltime=null; 
     if(otestAudio.duration){ 
     alltime=otestAudio.duration; 
     skipsuccess(alltime); 
     }else{
     otestAudio.onloadedmetadata=function(){ 
     alltime=otestAudio.duration; 
     skipsuccess(alltime); 
     };
     };
     };
     function showok(){
     $("#game-fp-words").children().remove();
     var rindex=current_guan-1;
     var zz=chatime();
     $("#game-fp-result").show();
     $("#game-fp-result").append('<strong>20</strong>');
     $("#game-fp-result").append('<strong>'+zz+'</strong>') 
     addfen($("#game-fp-result").children(".zonghefen").html());
     addfen($("#game-fp-result").children(".mintimefen").html()); 
     var showval=data_all[rindex][subindex].text.split(",").join("");
     count=parseInt(count)+parseInt(data_all[rindex][subindex].count);
     $("#game-fp-result").children("p").html(showval);
     otestAudio.src=data_all[rindex][subindex].url;
     };
     function chatime(){
     var chaval=(new Date().getTime()-starttime)/1000; 
     if(chaval<=5){
     return 30;
     }else if(chaval>5 && chaval<=10){
     return 20;
     }else if(chaval>10){
     return 10;
     }else{
     return 0;
     }; 
     };
     function skipsuccess(alltime){
     otestAudio.play();
     current_index=parseInt(current_index)+parseInt(1);
     if(current_index%10==0){
     current_guan=parseInt(current_guan)+parseInt(1);
     setTimeout(function(){
     $("#game-fp-result").children(".zonghefen").remove();
     $("#game-fp-result").children(".mintimefen").remove(); 
     $("#game-fp-result").hide(); 
     funguan(); 
     },parseInt(alltime*1000));  
     setTimeout(function(){ 
     fundata();
     },parseInt(alltime*1000)+parseInt(1000)); 
     }else{
     setTimeout(function(){
     $("#game-fp-result").children(".zonghefen").remove();
     $("#game-fp-result").children(".mintimefen").remove(); 
     $("#game-fp-result").hide();
     fundata();
     },parseInt(alltime*1000));
     };
     $("#game-fp-input").children("input").val(""); 
     };
     //function 
     function init(){
     $("#game-fp-box").show();
     $("#game-fp-input").children("input").val("");
     $("#game-fp-fen").find("input").val("0");
     $("#game-fp-input").children("input").attr('disabled','disabled'); 
     $("#game-fp-time").children("span").html(alltime);
     funguan(); 
     setTimeout(function(){
     fundata();
     },1000);
     inctime();
     };
     function funguan(){
     $("#game-fp-guanka").children("strong").html(guan_arr[current_guan-1].n);
     $("#game-fp-guanka").children("span").html(guan_arr[current_guan-1].c);
     $("#game-fp-guanka").show();
     setTimeout(function(){
     $("#game-fp-guanka").hide(); 
     },1000)
     };
     function fundata(){ 
     $("#game-fp-input").children("input").attr('disabled','disabled'); 
     setTimeout(function(){
     appenddata();
     iskey=true;
     },0);
     setTimeout(function(){
     funclose();
     $("#game-fp-input").children("input").focus();
     },2000);
     };
     function appenddata(){ 
     if(current_guan<=2){
     var arrtext=returnraditem().text.split(",");
     //console.log(current_guan+"-----"+returnraditem().id);
     for(var i=0;i<arrtext.length;i++){
     var tmp=$('<div is="0"><span>'+ arrtext[i] +'</span><em>10</em></div>');
     $("#game-fp-words").append(tmp);
     }; 
     }else if(current_guan>2 && current_guan<=4){
     var arrtext=returnraditem().text.split(",");
     //亂序處理
     var lasttext=[];
     var eearr=luanxu(arrtext.length);
     for(var j=0;j<eearr.length;j++){
     lasttext.push(arrtext[eearr[j]]);
     };
     for(var i=0;i<lasttext.length;i++){
     var tmp=$('<div is="0"><span>'+ lasttext[i] +'</span><em>10</em></div>');
     $("#game-fp-words").append(tmp);
     }; 
     }; 
     };
     function luanxu(maxlen){
     var rarr=[];
     for(var i=0;i<maxlen;i++){
     rarr.push(i);
     };
     var eearr=[];
     for(var j=0;j<maxlen;j++){
     var ing=Math.floor(Math.random()*rarr.length);
     eearr.push(rarr[ing]);
     rarr.splice(ing,1);
     };
     return eearr;
     };
     function returnraditem(){
     var rindex=current_guan-1;
     var temparr=[];
     for(var i=0;i<data_all[rindex].length;i++){
     if(data_all[rindex][i]['is']==true){ 
     temparr.push(data_all[rindex][i]); 
     }else{};
     };
     var realrad=Math.floor(Math.random()*temparr.length);
     for(var i=0;i<data_all[rindex].length;i++){
     if(data_all[rindex][i]['id']==temparr[realrad]['id']){ 
     data_all[rindex][i]['is']=false;
     subindex=i;
     }else{};
     }; 
     return temparr[realrad];
     };
     function funclose(){
     $("#game-fp-input").children("input").removeAttr('disabled');
     $("#game-fp-input").children("input").focus();
     starttime=new Date().getTime();
     $("#game-fp-words").children("div").each(function(index, element) {
       if($(this).attr("is")=="0"){
     $(this).removeClass("open").addClass("close");
     }else{};
      }); 
     };
     function funopen(){
     $("#game-fp-input").children("input").attr('disabled','disabled');
     $("#game-fp-words").children("div").each(function(index, element) {
       if($(this).attr("is")=="0"){
     $(this).removeClass("close").addClass("open");
     }else{};
      });
     };
     function inctime(){
     dong=setInterval(function(){
     alltime-=1;
     if(alltime<0){
     clearInterval(dong);
     $("#game-fp-words").children().remove();
     $("#game-fp-box").hide();
     $("#game-fp-input").children("input").attr('disabled','disabled'); 
     $(".game-fp-reset-con-a").html($("#game-fp-fen").find("input").val());
     $(".game-fp-reset-con-b").html(current_index);
     $(".game-fp-reset-con-c").html(count);
     $("#game-fp-reset").show();
     }else{
     $("#game-fp-time").children("span").html(alltime);
     };
     },1000);
     };
     //end
    }); 
    </script>
    </head>
    <body>
     <div id="game-fp">
      <div>句子翻牌</div>
      <div>
       <p>1.將牌面上的詞語輸入到方塊中。</p>
       <p>2.按照正確語序輸入句子能獲得額外獎勵。</p>
       <p>3.每組詞語顯示2-4秒。</p>
       <p>查看詞語:點擊“查看詞語”,或按“PageUp”鍵</p>
       <p>4.一共有10次機會。</p>
       <p>跳過詞語:點擊“跳過10”,或按“PageDown”鍵</p>
       <p>5.別忘了輸入標點符號!</p>
      </div>
      <div>開始游戲</div>
      <div id="game-fp-box">
       <div id="game-fp-fen">
        得分<span><input type="text" value="0" readonly="readonly" /></span>
       </div>
       <div id="game-fp-input">
        <input type="text" />
       </div>
       <div id="game-fp-time">
        剩余時間 <span>300</span>
       </div>
       <div id="game-fp-tools">
        <dl>
         <dt>暫停</dt>
         <dd>End</dd>
        </dl>
        <dl>
         <dt>再看一次</dt>
         <dd>PageUp</dd>
        </dl>
        <dl>
         <dt>跳過<span>10</span></dt>
         <dd>PageDown</dd>
        </dl>
        <dl>
         <dt>游戲說明</dt>
         <dd>Home</dd>
        </dl>
       </div>
       <div id="game-fp-words">
       </div>
       <div id="game-fp-guanka">
        <strong>第一關(guān)</strong>
        <span>正常詞序</span>
       </div>
       <div id="game-fp-pause">
        <span id="game-fp-sta">繼續(xù)</span>
       </div>
       <div id="game-fp-result">
        <div><span>正確語序</span><em><audio src="" id="test-audio"></audio></em></div>
        <p></p>
        <!--<strong>20</strong>
        <strong>0</strong>-->
       </div>
      </div>
      <div id="game-fp-reset">
       <div>    
        <p>游戲結(jié)束</p>
        <p>你的得分:<span>0</span></p>
        <p>完成句子:<span>0</span></p>
        <p>完成詞語:<span>0</span></p>
       </div>
       <span id="game-fp-reset-btn">再玩一次</span>
      </div> 
     </div>
    </body>
    </html>
    以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)javascript程序設(shè)計有所幫助。