JavaScript编写棋盘覆盖
2018-06-24 00:03:58来源:未知 阅读 ()
一、前言
二、关键代码
<!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棋盘覆盖
2.8*8棋盘覆盖
3.16*16棋盘覆盖
4.32*32棋盘覆盖
四、总结
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- javascript面向对象入门基础详细介绍 2020-03-29
- JavaScript函数表达式详解及实例 2020-03-25
- 如何用javascript连接access数据库 2020-03-20
- js中去掉字串左右空格 2020-03-20
- Javascript中的经典技巧 2020-03-20
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash