「已注销」 2021-06-27 15:45 采纳率: 100%
浏览 57
已采纳

2048小游戏使它可以显示分数

<!DOCTYPE html>

<html onkeydown="kd()">

 <head>

  <meta charset="utf-8">

  <title>2048小游戏</title>

  <style type="text/css">

   td {

    width: 80px;

    height: 80px;

    background-color: antiquewhite;

    font-size: 32px;

    text-align: center;

   }

   body{

    text-align: center;

   }

   table{

    margin:0 auto;

   }

     

   

  </style>

 </head>

 <body onload="newGame()">

  <h1>2048</h1>

  <p>SCORE:<span id="score1"></span></p >

  <table id="tbl">

   <tr>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

   </tr>

   <tr>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

   </tr>

   <tr>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

   </tr>

   <tr>

    <td></td>

    <td></td>

    <td></td>

    <td></td>

   </tr>

  </table>

  

  <script type="text/javascript">

   var a = [

    [2, 0, 8, 2],

    [4, 0, 2, 0],

    [2, 2, 4, 4],

    [2, 0, 2, 0]

   ]

 

   function newGame() {

    // 把数组清空

    // 在随机空格中添加2个随机数字(2或4)

    // 输出数组

    

    for (i = 0; i < a.length; i++)

     for (j = 0; j < a[i].length; j++)

     a[i][j] =0; 

      suiji();

      suiji();

      out();

      

      

   }

   

   function suiji(){

    var num = Math.random() > 0.5 ? 2 : 4;

    var i = Math.floor(Math.random() * 4);

    var j = Math.floor(Math.random() * 4);

    if (a[i][j] == 0) {

     a[i][j] = num;

    } else {

     suiji();

    }

        /* var i = Math.floor(Math.random() * a.length);

        var j = Math.floor(Math.random() * a.length);

     var num = Math.random() > 0.5 ? 2 : 4;

         a[i][j] = num;

    tbl.rows[i].cells[j].innerHTML = num; */

    /* var r, l;

    do{

     r = Math.floor(Math.random() * a.length);

     l = Math.floor(Math.random() * a.length);

    } while (a[r][l] != 0)

    a[r][l] = Math.random() > 0.5 ? 2 : 4;*/

    

   }

function newNum(){

      var i, j;

      do{

       i = Math.floor(Math.random() * 4);

       j = Math.floor(Math.random() * 4);

      } while (a[i][j] != 0)

      a[i][j] = Math.random() > 0.5 ? 2 : 4;

   }

   

   function out() {

    

 

    for (i = 0; i < a.length; i++)

     for (j = 0; j < a[i].length; j++)

      if (a[i][j] > 0)

       tbl.rows[i].cells[j].innerHTML = a[i][j]

    else

     tbl.rows[i].cells[j].innerHTML = '0'

   }

   

   function isGameOver(){

    for (i = 0; i< a[j].length-1;i++){

    for (j = 0; j< a[i].length-1; j++){

     if(a[j][i] == a[i][j-1]){

      return false;

     }

     if(a[j][i] == a[i-1][j]){

      return false;

     }

    } 

    }

    return true;

   }

   function getScore() {

    score = 0;

    document.getElementById('score').innerHTML = score;

        

   }

 

   function kd() {

    

    if (event.keyCode == 37) {

     mLeft();

     out();

     newNum();

     

     

    }else

    if (event.keyCode == 38) {

     mUp();

     out();

     newNum();

     

    }else

    if (event.keyCode == 39) {

     mRight();

     out();

     newNum();

     

    }else

    if (event.keyCode == 40) {

     mDown();

     out();

     newNum();

    }

   }

 

   function mRight() {

    for(w=0;w<a.length;w++){

     j=a[w].length-1;

     i=a[w].length-1-1;

     for(i=a[w].length-1-1;i>=0;i--){

      if(a[w][i]>0){

       if(a[w][j]==0){

        a[w][j]=a[w][i];

        a[w][i]=0;

       }else

       if(a[w][j]==a[w][i]){

        a[w][j] *=2;

        a[w][i]=0;

        j--;

       }else{

        j--;

        if(j>i){

         a[w][j]=a[w][i];

         a[w][i]=0;

         score = a[i][j];

        }

       }

       

      }

     }

    }

   } //右滑

function mUp() {

    for(w = 0; w < a.length; w++) {

     j = 0;

     i = 1;

     for(i = 1; i < a[w].length; i++) {

      if(a[i][w] > 0) {

       if(a[j][w]==0){

       a[j][w] = a[i][w];

       a[i][w] = 0;

      }else

      if(a[j][w] == a[i][w]) {

       a[j][w] *= 2;

       a[i][w] = 0;

       j++;

      }else {

       j++;

       if(j < i) {

        a[j][w] = a[i][w]

        a[i][w] = 0

        score = a[i][j];

          }

      }

     }

     }

    }

   } //上滑

   function mDown() {

    for(w = 0; w < a.length; w++) {

     j=a[w].length-1;

     i=a[w].length-1-1;

     for(i = a[w].length-1-1; i >= 0; i--) {

      if(a[i][w] > 0) {

       if(a[j][w] == 0) {

        a[j][w] = a[i][w];

        a[i][w] = 0;

       }else

       if(a[j][w] == a[i][w]) {

        a[j][w] *= 2;

        a[i][w] = 0;

        j--;

        

       }else {

        j--;

        if (j > i) {

         a[j][w] = a[i][w];

         a[i][w] =0

         score = a[i][j];

         

        }

       }

      }

     }

    }

   } //下滑

 

   function mLeft() {

    for (w = 0; w < a.length; w++) { 

     j = 0;

     i = 1;

     for (i = 1; i < a[w].length; i++)

      if (a[w][i] > 0) { 

       if (a[w][j] == 0) { 

        a[w][j] = a[w][i];

        a[w][i] = 0;

       } else 

        if (a[w][i] == a[w][j]) {

         a[w][j] *= 2; 

         a[w][i] = 0;

         j++;

         j++;

         if (j < i) { 

          a[w][j] = a[w][i] 

          a[w][i] = 0;

          score = a[i][j];

          

         }

        }

      }

    }

   } 

  </script>

 </body>

</html>

 

 

 

大佬可以帮我补齐getsocre()和isGameOver()这个了 使它可以在网页上输出实时显示分数和提示游戏结束 拜谢大佬!!!

  • 写回答

1条回答 默认 最新

  • 关注

    document.getElementById("score1").innerHTML = score ;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大