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 相关文章推荐
用js重建星际争霸
Dec 22 Javascript
jQuery 技巧小结
Apr 02 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
Jun 30 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 Javascript
JavaScript省市区三级联动菜单效果
Sep 21 Javascript
浅析script标签中的defer与async属性
Nov 30 Javascript
Bootstrap和Java分页实例第一篇
Dec 23 Javascript
简单谈谈vue的过渡动画(推荐)
Oct 11 Javascript
Vuex 使用及简单实例(计数器)
Aug 29 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
js实现炫酷光感效果
Sep 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
使用swoole扩展php websocket示例
2014/02/13 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python实现线程池代码分享
2015/06/21 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
Python内建模块struct实例详解
2018/02/02 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
如何使用repr调试python程序
2020/02/28 Python
Gap工厂店:Gap Factory
2017/11/02 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
婚礼司仪主持词
2014/03/14 职场文书
父母对孩子说的话
2014/04/12 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
授权委托书怎么写
2014/09/25 职场文书
企业整改报告范文
2014/11/08 职场文书
十八大观后感
2015/06/12 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
redis 限制内存使用大小的实现
2021/05/08 Redis
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android