这篇文章将为大家详细讲解有关利用js canvas实现一个五子棋游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联是专业的罗田网站建设公司,罗田接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行罗田网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!html部分
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body > <canvas id="five"></canvas> <h2 >五子棋</h2> <h3 id="currole">轮到:黑</h3> <div id="res" >胜者:</div> </body> <script> let cav = document.getElementById('five') let ctx = cav.getContext('2d') let k = 50 //倍数 let r = k/4 cav.width = cav.height = 16*k ctx.strokeStyle="#000000"; for(let i = 0;i<15;i++){ ctx.beginPath(); ctx.moveTo((i+1)*k,k); ctx.lineTo((i+1)*k,15*k); ctx.stroke(); } for(let i = 0;i<15;i++){ ctx.beginPath(); ctx.moveTo(k,(i+1)*k); ctx.lineTo(15*k,(i+1)*k); ctx.stroke(); } function initer(event){ let x = event.offsetX - k let y = event.offsetY - k let xclose = close(x,0,14) let yclose = close(y,0,14) let nodearr = [] let minxd = Math.abs(x-xclose[0]*k)<Math.abs(x-xclose[1]*k)? Math.abs(x-xclose[0]*k)<r?xclose[0]*k:undefined : Math.abs(x-xclose[1]*k)<r?xclose[1]*k:undefined let maxyd = Math.abs(y-yclose[0]*k)<Math.abs(y-yclose[1]*k)? Math.abs(y-yclose[0]*k)<r?yclose[0]*k:undefined : Math.abs(y-yclose[1]*k)<r?yclose[1]*k:undefined if((minxd!==undefined)&&(maxyd!==undefined)){ nodearr = [minxd,maxyd] } if(nodearr.length!==0){ setNode(nodearr) } } cav.addEventListener("click",initer) function close(coo,lort,rorb){ coo<0?coo=0:coo=coo coo>14*k?coo=14*k:coo=coo let dect = rorb - lort if(dect===1){ return [lort,rorb] }else{ if(coo<(lort+Math.ceil(dect/2))*k){ let nlort=lort let nrorb=lort+Math.ceil(dect/2) return close(coo,nlort,nrorb) }else{ let nlort=lort+Math.ceil(dect/2) let nrorb=rorb return close(coo,nlort,nrorb) } } } let colorflag = 0 function setNode(arr){ if(gomoku[arr[0]/k][arr[1]/k]!==undefined){ return } if(colorflag===0){ ctx.fillStyle="black" ctx.beginPath(); ctx.arc(arr[0]+k,arr[1]+k,r,0,2*Math.PI); ctx.stroke(); ctx.fill(); checkFinish([arr[0]/k,arr[1]/k]) gomoku[arr[0]/k][arr[1]/k] = colorflag colorflag = 1 document.getElementById('currole').innerHTML="轮到:白" }else{ ctx.fillStyle="white" ctx.beginPath(); ctx.arc(arr[0]+k,arr[1]+k,r,0,2*Math.PI); ctx.stroke(); ctx.fill(); checkFinish([arr[0]/k,arr[1]/k]) gomoku[arr[0]/k][arr[1]/k] = colorflag colorflag = 0 document.getElementById('currole').innerHTML="轮到:黑" } } </script> <script src="./five.js"></script> </html>
当前文章:利用jscanvas实现一个五子棋游戏-创新互联
当前URL:https://www.cdcxhl.com/article4/hhdoe.html
成都网站建设公司_创新互联,为您提供网页设计公司、网站营销、建站公司、品牌网站建设、App开发、企业建站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联