五子棋的界面设计包括绘制棋盘、绘制棋子及黑白棋轮流落子。

涉及的知识点主要有canvas绘制直线、设置画笔颜色;canvas画圆、填充渐变色

1.绘制棋盘

先设定棋盘的宽、高;然后利用for循环,根据坐标使用context的一些方法来绘制

var drawChessBoard=function(){

for(var i=0;i<15;i++){ //棋盘宽高450,旁白15,间距30

context.moveTo(15+i*30,15);//竖线

context.lineTo (15+i*30,435);

context.stroke ();

context.moveTo(15,15+i*30);//横线
        context.lineTo(435,15+i*30);

context.stroke();

} }

2.绘制棋子

这里牵涉到canvas绘制圆的情况,用画弧形的方法来画圆,同时设置黑棋白琪两种颜色,用到了渐变对象,fill()函数用来填充的。

//绘画棋子需要首先会画圆 ,先开始一个路径,然后记得关闭该路径 
context.beginPath ();
context.arc(200,200,100,0,2*Math.PI );
//arc用来画扇形,此处用来画圆,前面两个参数为圆心坐标,接着为半径,起始弧度,种植弧度
context.closePath ();
var gradient=context.createRadialGradient (200,200,50,200,200,20);
//返回一个渐变的对象,前面三个参数为外圆心坐标和半径,后面三个为内圆心坐标和半径
gradient.addColorStop (0,"#0A0A0A");//外圆的颜色
gradient.addColorStop (1,"#636766");//内圆的颜色
context.fillStyle =gradient ;
context.fill();//fill是用来填充的*/

3.落子设置

我们需要在点击棋盘某个位置时候落子,则需要给canvas绑定一个onclick事件,根据坐标索引来确定落子的位置,同时为了防止一个位置可以同时落黑白两种棋我们需要先定义并初始化一个二维数组来存储棋盘上的位置及落子情况,然后将棋盘位置没有棋子设置为0,黑棋设置为1,白棋设置为2.点击一次之后改变对象的值即可实现轮流落子的动作。

chess.onclick=function(e){    
var x= e.offsetX;
var y= e.offsetY;
var i=Math.floor(x/30);//索引,下取整
var j=Math.floor(y/30);
if(chessBoard [i][j]==0){ //位置上没有棋子时候才让其落子
oneStep(i,j,me);//默认画的是黑棋
if(me){ //落完棋子后,为了区分落下的是黑棋还是白琪分别为其设定值
chessBoard [i][j]=1;
}else{
chessBoard [i][j]=2;
}
me=!me;//黑棋下完之后换白琪 }
}

源码:https://github.com/sunshineqt/webxt/tree/master/game-five-in-a-row

JavaScript实现五子棋的界面设计的更多相关文章

  1. JavaScript中国象棋程序(1) - 界面设计

    "JavaScript中国象棋程序" 这一系列教程将带你从头使用JavaScript编写一个中国象棋程序.这是教程的第1节. 这一系列共有9个部分: 0.JavaScript中国象 ...

  2. NanUI for Winform发布,让Winform界面设计拥有无限可能

    如今,尽管WPF.UWP大行其道,大有把Winform打残干废的趋势.但是还是有那么一波顽固不化的老家伙们固守着Winform,其中就包括我. 好吧,既然都说Winform做得软件不如WPF界面美观效 ...

  3. 对WEB前端的几段思考(一)——界面设计和性能优化(整理中)

    尽管我并非艺术出生,既没有任何设计基础,又没有较高艺术涵养,也深谙在短时间内创造一定艺术造诣并非易事,但是既然当初选择从事网站前端开发,我的目光不能仅停留在前端代码上.作为一名志向在前端领域发展的人员 ...

  4. React 可视化开发工具 Shadow Widget 非正经入门(之五:指令式界面设计)

    本系列博文从 Shadow Widget 作者的视角,解释该框架的设计要点.本篇解释 Shadow Widget 中类 Vue 的控制指令,与指令式界面设计相关. 1. 指令式界面设计 Vue 与 A ...

  5. Java界面设计 Swing(1)

    Java界面设计的用途 开发者可以通过Java SE开发丰富并且强大的具有图形界面的桌面应用程序.也可以设计一些提高效率的工具软件,帮助自己处理机械性工作. Java 的图形界面工具包,可以用于工具类 ...

  6. Android开发1:基本UI界面设计——布局和组件

    前言 啦啦啦~本学期要开始学习Android开发啦~ 博主在开始学习前是完完全全的小白,只有在平时完成老师要求的实验的过程中一步一步学习~从此篇博文起,博主将开始发布Android开发有关的博文,希望 ...

  7. iPhone / iPad UI界面设计与图标设计的尺寸设计规范+安卓+网页

    ①iPhone的设计尺寸 iPhone界面尺寸: 设备 分辨率 状态栏高度 导航栏高度 标签栏(工具栏)高度 iPhone6 plus设计版 1242 × 2208 60px 132px 146px ...

  8. 免费 PSD 素材:25个全新的界面设计资源

    在这篇文章中,我们给大家收集了25套全新的 UI 设计素材.这些来自优秀设计师的 PSD 源文件素材让其它的设计师们在设计用户界面原型的时候能够非常便利. 网站用户界面,移动应用程序用户界面和对设计师 ...

  9. 26款能够吸引用户的 iPhone App 界面设计

    在这个移动互联网告诉的时代,众多的移动应用程序涌现出来.谁能抓住用户的注意力,谁就有可能成功.在下面这些移动 App 界面设计中,你可以看到不同创意类型的视觉效果,让你获得灵感. 您可能感兴趣的相关文 ...

随机推荐

  1. 【转载】COM的多线程模型

    原文:COM的多线程模型 COM的多线程模型是COM技术里头最难以理解的部分之一,很多书都有涉及但是都没有很好的讲清楚.很多新人都会在这里觉得很迷惑,google大神能搜到一篇vckbase上的文章, ...

  2. Mysql ERROR 1064 (42000)

    创建了一个表: +-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null ...

  3. jsp利用cookie记住用户名,下次登录时显示在文本框中(仅仅一个Cookie就整了将近三个小时,⊙﹏⊙b汗)

    <%@page import="java.net.URLDecoder"%> <%@page import="sun.security.util.Len ...

  4. poj 2653 (线段相交判断)

    http://poj.org/problem?id=2653 Pick-up sticks Time Limit: 3000MS   Memory Limit: 65536K Total Submis ...

  5. 51nod 1413 权势二进制 背包dp

    1413 权势二进制 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB  一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成.例如0,1,101, ...

  6. Maven中<dependencies>节点和<dependencyManagement>节点的区别 转

    以前一直没有在意,今天建立maven工程的时候在<dependencyManagement>节点下加入了junit依赖,结果在dependency Graph中没有发现junit的依赖关系 ...

  7. mysql概要(九)字符集和校对集

    1.mysql 字符集有细致设置: 2.mysql字符处理机制是:数据库和客户端之间存在一个字符集转换器(后文简称转换器)将客户端字符编码(必须告诉服务端的)转换成一种中间编码的数据(可自定义的但保证 ...

  8. Java编程思想笔记

    打好java基础 后续会增加相应基础笔试题 目录如下 1 对象导论2 一切都是对象3 操作符4 控制执行流程5 初始化与清理6 访问控制权限7 复用类8 多态9 接口10 内部类11 持有对象12 通 ...

  9. 从linux系统mysql导出数据库

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/50763674 1.MySQL数据库导出 /usr/local/mysql/bin/m ...

  10. 转:CPU与内存的那些事

    下面是网上看到的一些关于内存和CPU方面的一些很不错的文章. 整理如下: 转: CPU的等待有多久? 原文标题:What Your Computer Does While You Wait 原文地址: ...