Maison > interface Web > js tutoriel > JS implémente la couverture de l'échiquier

JS implémente la couverture de l'échiquier

php中世界最好的语言
Libérer: 2018-04-18 16:48:13
original
2093 Les gens l'ont consulté

Cette fois, je vais vous amener JS pour mettre en œuvre une couverture d'échiquier. Quelles sont les précautions pour que JS mette en œuvre une couverture d'échiquier. Voici un cas pratique, jetons un coup d'œil.

J'ai déjà fait un devoir d'algorithme, appelé couverture d'échiquier, qui devait à l'origine être écrit en langage C, mais comme mon langage C est à moitié cuit (haha), j'ai simplement changé la méthode d'écriture du langage C sur Internet en JavaScript Écriture et affichage de son effet de superposition

<!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>
  <p 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>
  </p>
  <p id="chess">
  </p>
</body>
</html>
<script type="text/javascript">
  window.onload=function()
  {//棋盘设置
    varchess=document.getElementById('chess');
    varinput=document.getElementsByTagName('input')[3];
    input.onclick=function()
    {
      varN=document.getElementsByTagName('input')[0].value;
      vartable=document.createElement('table');
      chess.appendChild(table);
      table.style.border='2px solid';
        table.style.borderCollapse='collapse';
      for(vari=0;i<N;i++)
      {
        vartr=document.createElement(&#39;tr&#39;);
        table.appendChild(tr);
        tr.style.height ="20px";
        tr.style.border=&#39;1px solid #ccc&#39;;
        for(varj=0;j<N;j++)
        {
          vartd=document.createElement(&#39;td&#39;);
          tr.appendChild(td);
          td.style.width ="20px";
          td.style.border=&#39;1px solid #ccc&#39;;
        }
      } 
    }
    varOut=document.getElementsByTagName(&#39;input&#39;)[4];
    varMatrix =newArray();  
    for(vari=0;i<100; i++)
    {//初始化棋盘矩阵
        Matrix[i] =newArray(); 
        for(varj=0;j<100;j++)
      {
         Matrix[i][j]=0;
        }
    }
    Out.onclick=function()
    {//棋盘生成
      varr,c;
      varX=document.getElementsByTagName(&#39;input&#39;)[1].value;
      varY=document.getElementsByTagName(&#39;input&#39;)[2].value;
      varN=document.getElementsByTagName(&#39;input&#39;)[0].value;
      chessBoard(0,0,X-1,Y-1,N);
      for(r = 0; r < N; r++)
      {
        for(c = 0; c < N; c++)
        {
           varq=Matrix[r][c];
           vartable=document.getElementsByTagName(&#39;table&#39;)[0];
           table.rows[r].cells[c].style.background=&#39;rgb(&#39;+13*q%256+&#39;,&#39;+43*q%256+&#39;,&#39;+73*q%256+&#39;)&#39;;
        }
      }
    }
    varnCount = 0;
    functionchessBoard(tr,tc,dr,dc,size)
    {
      vars,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>
Copier après la connexion

Je me réfère au code du langage C pour la couverture de l'échiquier du manuel Pour l'utiliser en JavaScript, la percée est tableau bidimensionnelMatrix[][]. une fois le calcul obtenu, il y a une idée. N'oubliez pas que les données renseignées dans le formulaire sont obtenues après avoir cliqué sur le bouton, le code pour obtenir le nœud de l'élément doit donc être placé dans onclick.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée de l'utilisation de l'héritage combiné parasite js

React-router4.0 implémente la redirection et fonction 404

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal