这次给大家带来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中文网其他相关文章!

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版