91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript編寫棋盤覆蓋代碼詳解

發布時間:2020-10-24 21:06:50 來源:腳本之家 閱讀:175 作者:fyk曩昔 欄目:web開發

一、前言

之前做了一個算法作業,叫做棋盤覆蓋,本來需要用c語言來編寫的,但是因為我的c語言是半桶水(哈哈),所以索性就把網上的c語言寫法改成JavaScript寫法,并且把它的覆蓋效果顯示出來

二、關鍵代碼

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>算法作業2</title>
<style type="text/css">
  #num{}
  #chess{
    margin-top:20px;
    }
</style>
</head>
<body>
  <div id="num">
    <p>設置棋盤大小:
      <input type="text" name="Num" size="4" />
    </p>
    <p>請輸入特殊方格的位置:</p>
    <p>
    x:<input type="text" name="X" size="25"/><br />
    y:<input type="text" name="Y" size="25" />
    </p>
    <p>
      <input type="button" value="設置棋盤參數" />
      <input type="button" value="生成棋盤" />
    </p>
  </div>
  <div id="chess">
  </div>
</body>
</html>
<script type="text/javascript">
  window.onload=function()
  {//棋盤設置
    var chess=document.getElementById('chess');
    var input=document.getElementsByTagName('input')[3];
    input.onclick=function()
    {
      var N=document.getElementsByTagName('input')[0].value;
      var table=document.createElement('table');
      chess.appendChild(table);
      table.style.border='2px solid';
        table.style.borderCollapse='collapse';
      for(var i=0;i<N;i++)
      {
        var tr=document.createElement('tr');
        table.appendChild(tr);
        tr.style.height = "20px";
        tr.style.border='1px solid #ccc';
        for(var j=0;j<N;j++)
        {
          var td=document.createElement('td');
          tr.appendChild(td);
          td.style.width = "20px";
          td.style.border='1px solid #ccc';
        }
      }  
    }
    var Out=document.getElementsByTagName('input')[4];
    var Matrix = new Array();   
    for(var i=0;i<100; i++)
    { //初始化棋盤矩陣
        Matrix[i] = new Array();  
        for(var j=0;j<100;j++)
      {
         Matrix[i][j]=0;
        }
    }
    Out.onclick=function()
    { //棋盤生成
      var r,c;
      var X=document.getElementsByTagName('input')[1].value;
      var Y=document.getElementsByTagName('input')[2].value;
      var N=document.getElementsByTagName('input')[0].value;
      chessBoard(0,0,X-1,Y-1,N);
      for (r = 0; r < N; r++)
      {
        for (c = 0; c < N; c++)
        {
           var q=Matrix[r][c];
           var table=document.getElementsByTagName('table')[0];
           table.rows[r].cells[c].style.background='rgb('+13*q%256+','+43*q%256+','+73*q%256+')';
        }
      }
    }
    var nCount = 0;
    function chessBoard(tr,tc,dr,dc,size)
    {
      var s,t;
      if (size == 1) return;
      s =size/2;
      t = ++nCount ;
      if (dr < tr + s && dc < tc +s)
        chessBoard(tr,tc,dr,dc,s);
      else
      {
        Matrix[tr+s-1][tc+s-1] = t;
        chessBoard(tr,tc,tr+s-1,tc+s-1,s);
      }
      if (dr < tr + s && dc >= tc + s )
        chessBoard(tr,tc+s,dr,dc,s);
      else
      {
        Matrix[tr+s-1][tc+s] = t;
        chessBoard(tr,tc+s,tr+s-1,tc+s,s);
      }
      if (dr >= tr + s && dc < tc + s)
        chessBoard(tr+s,tc,dr,dc,s); 
      else
      {
        Matrix[tr+s][tc+s-1] = t;
        chessBoard(tr+s,tc,tr+s,tc+s-1,s);
      }
      if (dr >= tr + s && dc >= tc + s)
        chessBoard(tr+s,tc+s,dr,dc,s);
      else
      {
        Matrix[tr+s][tc+s] = t;
        chessBoard(tr+s,tc+s,tr+s,tc+s,s);
      }
    }
  }
</script>

三、效果

1.4*4棋盤覆蓋

JavaScript編寫棋盤覆蓋代碼詳解JavaScript編寫棋盤覆蓋代碼詳解

2.8*8棋盤覆蓋

JavaScript編寫棋盤覆蓋代碼詳解

3.16*16棋盤覆蓋

JavaScript編寫棋盤覆蓋代碼詳解

4.32*32棋盤覆蓋

JavaScript編寫棋盤覆蓋代碼詳解

四、總結

棋盤覆蓋的C語言代碼我是參考課本的,為了能夠把它用進JavaScript里面,突破口就是二維數組Matrix[][],只要能夠獲得它計算之后整個數組的數據,那么就有思路了。要記住填寫進表單里面的數據是在點擊按鈕之后才獲取的,所以獲取元素節點的代碼要放在onclick里面。

以上所述是小編給大家介紹的JavaScript編寫棋盤覆蓋代碼詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荣成市| 德兴市| 虹口区| 榆树市| 曲麻莱县| 龙井市| 耒阳市| 兴和县| 连南| 毕节市| 连平县| 文成县| 奇台县| 仪陇县| 含山县| 南投市| 开平市| 高邮市| 喀什市| 勃利县| 平远县| 黄龙县| 通道| 乌鲁木齐县| 昂仁县| 关岭| 马关县| 札达县| 宁明县| 龙海市| 灵石县| 景宁| 竹溪县| 获嘉县| 凌海市| 阿城市| 辛集市| 察雅县| 高密市| 高邑县| 南岸区|