利用js画布上实现一个五子棋游戏

  介绍

这篇文章将为大家详细讲解有关利用js画布上实现一个五子棋游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

html部分

& lt; !DOCTYPE html>   & lt; html lang=癳n"祝辞   & lt; head>   & lt;元charset=癠TF-8"祝辞   & lt;元名称=皏iewport"内容=翱矶?设备宽度,初始=1.0,比;   & lt; title> Document   & lt;/head>   & lt;身体比;   & lt;帆布id=癴ive"祝辞& lt;/canvas>   & lt; h2祝辞五子棋& lt;/h2>   & lt; h3 id=癱urrole"祝辞轮到:黑& lt;/h3>   & lt; div id=皉es"在胜者:& lt;/div>   & lt;/body>   & lt; script>   让骑兵=. getelementbyid (& # 39; 5 # 39;)   让ctx=cav.getContext (& # 39; 2 d # 39;)   让50 k=//倍数   让r=k/4   骑兵。宽度=骑兵。身高=16 * k   ctx.strokeStyle=? 000000“;   (让我=0;i<15;我+ +){   ctx.beginPath ();   ctx.moveTo ((i + 1) * k, k);   ctx.lineTo (15 * (i + 1) * k, k);   ctx.stroke ();   }   (让我=0;i<15;我+ +){   ctx.beginPath ();   ctx.moveTo (k, k (i + 1) *);   ctx.lineTo (15 * k, k (i + 1) *);   ctx.stroke ();   }   init函数(事件){   让x=事件。offsetX - k   让y=事件。offsetY - k   让xclose=关闭(x 0 14)   让yclose=关闭(y, 0, 14)   让nodearr=[]   让minxd=Math.abs (x-xclose [0] * k) & lt; Math.abs (x-xclose [1] * k), # 63;   Math.abs (x-xclose [0] * k) & lt; r& # 63; xclose [0] * k:定义   :   Math.abs (x-xclose [1] * k) & lt; r& # 63; xclose [1] * k:定义   让maxyd=Math.abs (y-yclose [0] * k) & lt; Math.abs (y-yclose [1] * k), # 63;   Math.abs (y-yclose [0] * k) & lt; r& # 63; yclose [0] * k:定义   :   Math.abs (y-yclose [1] * k) & lt; r& # 63; yclose [1] * k:定义   如果((minxd !==未定义),和(maxyd !==定义)){   nodearr=[minxd maxyd]   }   如果(nodearr.length !==0) {   setNode (nodearr)   }   }   cav.addEventListener (“click" init)   函数关闭(首席运营官,lort rorb) {   coo<0, # 63;首席运营官=0:首席运营官=首席运营官   coo> 14 * k& # 63;首席运营官=14 * k:首席运营官=首席运营官   让dect=rorb - lort   如果(dect===1) {   返回(lort, rorb)   其他}{   如果(coo<(lort + Math.ceil (dect/2)) * k) {   让nlort=lort   让nrorb=lort + Math.ceil (dect/2)   返回关闭(首席运营官,nlort nrorb)   其他}{   让nlort=lort + Math.ceil (dect/2)   让nrorb=rorb   返回关闭(首席运营官,nlort nrorb)   }   }   }   让colorflag=0   函数setNode (arr) {   如果(五子棋(arr [0]/k) (arr [1]/k) !==未定义){   返回   }   如果(colorflag===0) {   ctx.fillStyle=癰lack"   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))   五子棋(arr [0]/k) (arr [1]/k)=colorflag   colorflag=1   . getelementbyid (& # 39; currole& # 39;) .innerHTML=奥值?白“;   其他}{   ctx.fillStyle=皐hite"   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))   五子棋(arr [0]/k) (arr [1]/k)=colorflag   colorflag=0   . getelementbyid (& # 39; currole& # 39;) .innerHTML=奥值?黑“   }   }      & lt;/script>   & lt;脚本src=https://www.yisu.com/zixun/薄?five.js ">   

外部js文件部分

利用js画布上实现一个五子棋游戏