这次给大家带来js实现棋盘覆盖,js实现棋盘覆盖的注意事项有哪些,下面就是实战案例,一起来看一下。
之前做了一个算法作业,叫做棋盘覆盖,本来需要用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>
<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('tr');
table.appendChild(tr);
tr.style.height ="20px";
tr.style.border='1px solid #ccc';
for(varj=0;j<N;j++)
{
vartd=document.createElement('td');
tr.appendChild(td);
td.style.width ="20px";
td.style.border='1px solid #ccc';
}
}
}
varOut=document.getElementsByTagName('input')[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('input')[1].value;
varY=document.getElementsByTagName('input')[2].value;
varN=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++)
{
varq=Matrix[r][c];
vartable=document.getElementsByTagName('table')[0];
table.rows[r].cells[c].style.background='rgb('+13*q%256+','+43*q%256+','+73*q%256+')';
}
}
}
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>棋盘覆盖的C语言代码我是参考课本的,为了能够把它用进JavaScript里面,突破口就是二维数组Matrix[][],只要能够获得它计算之后整个数组的数据,那么就有思路了。要记住填写进表单里面的数据是在点击按钮之后才获取的,所以获取元素节点的代码要放在onclick里面。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上就是JS实现棋盘覆盖的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号