JS canvas绘制五子棋的棋盘


Posted in Javascript onMay 28, 2020

本文为大家分享了JS canvas绘制五子棋棋盘的具体代码,供大家参考,具体内容如下

box-shadow:给元素块周边添加阴影效果。
语法:box-shadow: h-shadow v-shadow blur spread color inset;
h-shadow: (必须)阴影的水平偏移量,如果是正值,则阴影在元素块右边;如果是负值,则阴影在元素块左边。
v-shadow: (必须)阴影的垂直偏移量,如果是正值,则阴影在元素块底部;如果是负值,则阴影在元素块顶部。
blur: (可选)阴影的模糊半径,其值大于等于0;为0时阴影不具有模糊效果,值越大阴影边缘越模糊。
spread: (可选)阴影扩展半径,值为正,整个阴影都扩大;值为负,整个阴影都缩小。
color: (可选)阴影颜色。
insert: (可选)不设值则默认为外部阴影,取insert则投影为内阴影。

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>五子棋</title>
 <style type="text/css">
 canvas{
 display: block;
 margin: 50px auto;
 box-shadow: -2px -2px 2px #F3F2F2, 5px 5px 5px #6F6767;
 }
 </style>
</head>
<body>
 <canvas id="mycanvas" width="450px" height="450px"></canvas>
 <script type="text/javascript">
 var chess = document.getElementById("mycanvas");
 var context = chess.getContext('2d');
 var me = true;
 var chessBox = [];//用于存放棋盘中落子的情况
 for(var i=0;i<15;i++){
  chessBox[i]=[];
  for(var j=0;j<15;j++){
  chessBox[i][j]=0;//初始值为0
  }
 }
 function drawChessBoard(){
  for(var i=0;i<15;i++){
  context.strokeStyle="#D6D1D1";
  context.moveTo(15+i*30,15);//垂直方向画15根线,相距30px;
  context.lineTo(15+i*30,435);
  context.stroke();
  context.moveTo(15,15+i*30);//水平方向画15根线,相距30px;棋盘为14*14;
  context.lineTo(435,15+i*30);
  context.stroke();
  }
 }
 drawChessBoard();//绘制棋盘
 function oneStep(i,j,k){
  context.beginPath();
  context.arc(15+i*30,15+j*30,13,0,2*Math.PI);//绘制棋子
  var g=context.createRadialGradient(15+i*30,15+j*30,13,15+i*30,15+j*30,0);//设置渐变
  if(k){    //k=true是黑棋,否则是白棋
  g.addColorStop(0,'#0A0A0A');//黑棋
  g.addColorStop(1,'#636766');
  }else {
  g.addColorStop(0,'#D1D1D1');//白棋
  g.addColorStop(1,'#F9F9F9');
  }
  context.fillStyle=g;
  context.fill();
  context.closePath();
 }
 chess.onclick=function(e){
  var x = e.offsetX;//相对于棋盘左上角的x坐标
  var y = e.offsetY;//相对于棋盘左上角的y坐标
  var i = Math.floor(x/30);
  var j = Math.floor(y/30);
  if( chessBox[i][j] == 0 ) {
  oneStep(i,j,me);
  if(me){
   chessBox[i][j]=1;
  }else{
   chessBox[i][j]=2;
  }
  me=!me;//下一步白棋
  }
 }
 </script>
</body>
</html>

效果图是这样的

JS canvas绘制五子棋的棋盘

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
js 获取元素下面所有li的两种方法
Apr 14 Javascript
js实现具有高亮显示效果的多级菜单代码
Sep 01 Javascript
JavaScript仿支付宝密码输入框
Dec 29 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
Mar 10 Javascript
原生js二级联动效果
Jun 20 Javascript
带你了解session和cookie作用原理区别和用法
Aug 14 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
详解如何在Angular优雅编写HTTP请求
Dec 05 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 #Javascript
H5+C3+JS实现五子棋游戏(AI篇)
May 28 #Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 #Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 #Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
May 28 #Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
Sep 28 #Javascript
vue element table 表格请求后台排序的方法
Sep 28 #Javascript
You might like
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
PHP里8个鲜为人知的安全函数分析
2014/12/09 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
微信自定义分享php代码分析
2016/11/24 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Python AES加密模块用法分析
2017/05/22 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python实现简单的文字识别
2018/11/27 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
印度最大的旅游网站:MakeMyTrip
2016/10/05 全球购物
Java的五个基础面试题
2016/02/26 面试题
咖啡店创业计划书范文
2014/09/15 职场文书
民间个人借款协议书
2014/09/30 职场文书
个人职业及收入证明
2014/10/13 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
投诉信范文
2015/07/02 职场文书
致运动员加油稿
2015/07/21 职场文书
KTV员工管理制度
2015/08/06 职场文书
七年级作文之环保作文
2019/10/17 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书