欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript編寫棋盤覆蓋代碼詳解

 更新時(shí)間:2017年08月28日 17:06:25   作者:fyk曩昔  
這篇文章主要介紹了JavaScript編寫棋盤覆蓋代碼詳解,需要的朋友可以參考下

一、前言

之前做了一個(gè)算法作業(yè),叫做棋盤覆蓋,本來(lái)需要用c語(yǔ)言來(lái)編寫的,但是因?yàn)槲业腸語(yǔ)言是半桶水(哈哈),所以索性就把網(wǎng)上的c語(yǔ)言寫法改成JavaScript寫法,并且把它的覆蓋效果顯示出來(lái)

二、關(guān)鍵代碼

<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>算法作業(yè)2</title>
<style type="text/css">
  #num{}
  #chess{
    margin-top:20px;
    }
</style>
</head>
<body>
  <div id="num">
    <p>設(shè)置棋盤大?。?
      <input type="text" name="Num" size="4" />
    </p>
    <p>請(qǐng)輸入特殊方格的位置:</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="設(shè)置棋盤參數(shù)" />
      <input type="button" value="生成棋盤" />
    </p>
  </div>
  <div id="chess">
  </div>
</body>
</html>
<script type="text/javascript">
  window.onload=function()
  {//棋盤設(shè)置
    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棋盤覆蓋

2.8*8棋盤覆蓋

3.16*16棋盤覆蓋

4.32*32棋盤覆蓋

四、總結(jié)

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

以上所述是小編給大家介紹的JavaScript編寫棋盤覆蓋代碼詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊頁(yè)面 移動(dòng)DIV

    javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊頁(yè)面 移動(dòng)DIV

    本篇文章主要介紹javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊頁(yè)面,移動(dòng)DIV。話不多說(shuō),附上代碼實(shí)例。需要的朋友來(lái)看下吧
    2016-12-12
  • 異步j(luò)avascript的原理和實(shí)現(xiàn)技巧介紹

    異步j(luò)avascript的原理和實(shí)現(xiàn)技巧介紹

    因?yàn)楣ぷ鞯男枰乙诰W(wǎng)頁(yè)端編寫一段腳本,把數(shù)據(jù)通過(guò)網(wǎng)頁(yè)批量提交到系統(tǒng)中去。所以我就想到了Greasemonkey插件,于是就開始動(dòng)手寫,發(fā)現(xiàn)問(wèn)題解決得很順利
    2012-11-11
  • 再論Javascript的類繼承

    再論Javascript的類繼承

    說(shuō)到Javascript的類繼承,就必然離不開原型鏈,但只通過(guò)原型鏈實(shí)現(xiàn)的繼承有著不少缺陷。
    2011-03-03
  • JS獲取URL中參數(shù)值(QueryString)的4種方法分享

    JS獲取URL中參數(shù)值(QueryString)的4種方法分享

    今天碰到要在一個(gè)頁(yè)面獲取另外一個(gè)頁(yè)面url傳過(guò)來(lái)的參數(shù),一開始很本能的想到了用 split("?")這樣一步步的分解出需要的參數(shù)。后來(lái)想了一下,肯定會(huì)有更加簡(jiǎn)單的方法的!所以在網(wǎng)上找到了幾個(gè)很又簡(jiǎn)單實(shí)用的方法,mark下。
    2014-04-04
  • js控制瀏覽器全屏示例代碼

    js控制瀏覽器全屏示例代碼

    控制瀏覽器全屏的方法有很多,下面為大家介紹下js是如何做到的
    2014-02-02
  • JS常用正則表達(dá)式總結(jié)

    JS常用正則表達(dá)式總結(jié)

    JS常用正則表達(dá)式總結(jié)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-11-11
  • JavaScript函數(shù)中關(guān)于valueOf和toString的理解

    JavaScript函數(shù)中關(guān)于valueOf和toString的理解

    本文給大家介紹JavaScript函數(shù)中關(guān)于valueOf和toString的理解,簡(jiǎn)單的說(shuō)就是需要轉(zhuǎn)換為字符串時(shí),會(huì)調(diào)用toString,需要轉(zhuǎn)換為數(shù)字時(shí)需要調(diào)用valueOf。對(duì)js valueof tostring知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • 微信小程序如何在頁(yè)面跳轉(zhuǎn)時(shí)進(jìn)行頁(yè)面導(dǎo)航

    微信小程序如何在頁(yè)面跳轉(zhuǎn)時(shí)進(jìn)行頁(yè)面導(dǎo)航

    小程序能夠在不同的頁(yè)面進(jìn)行跳轉(zhuǎn)切換,路由起到了至關(guān)重要的作用,下面這篇文章主要給大家介紹了關(guān)于微信小程序如何在頁(yè)面跳轉(zhuǎn)時(shí)進(jìn)行頁(yè)面導(dǎo)航的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 如何安裝控制器JavaScript生成插件詳解

    如何安裝控制器JavaScript生成插件詳解

    這篇文章主要給大家介紹了關(guān)于如何安裝控制器JavaScript生成插件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • 微信公眾號(hào)開發(fā) 實(shí)現(xiàn)點(diǎn)擊返回按鈕就返回到聊天界面

    微信公眾號(hào)開發(fā) 實(shí)現(xiàn)點(diǎn)擊返回按鈕就返回到聊天界面

    本文分享了微信公眾號(hào)開發(fā)實(shí)現(xiàn)點(diǎn)擊返回按鈕就返回到聊天界面的示例代碼。需要的朋友一起來(lái)看下吧
    2016-12-12

最新評(píng)論