特效描述:HTML5 网页版黑白子五子棋 五子棋游戏。

通过原生js和canvas实现五子棋,可以试下左右手互搏

代码结构

1. HTML代码

PK

您的浏览器不支持canvas

var text = document.getElementsByClassName('text');

//定义二维数组作为棋盘

var maps = new Array(16);

var len = maps.length;

// alert(len)

for(var i=0;i

maps[i] = new Array();

for(var j = 0;j

maps[i][j] = 0;

// console.log(maps[i][j]);

}

}

//初始化棋子

var black = new Image();

var white = new Image();

var clientWidth = document.documentElement.clientWidth;

black.src = "picture/black.png";

white.src = "picture/white.png";

//棋盘初始化

var can = document.getElementById('can');

var ctx = can.getContext("2d"); //获取该canvas的2D绘图环境对象

ctx.strokeStyle = "#333";

for(var m=0;m

for(var n=0;n

ctx.strokeRect(m*40+20,n*40+20,40,40); //绘制40的小正方形

}

}

//绘制文字

var can1 = document.getElementsByClassName('text');

var ctx1 = can1[0].getContext("2d");

ctx1.beginPath();

ctx1.font=("100px Georgia");

ctx1.fillStyle="#F70707";

// ctx1.fillText("Hello",40,100);

var isBlack = true;

//下子

can.οnclick=function play(e){

// alert(e.clientX);

//获取棋盘偏移量

var l = this.offsetLeft+20;

var t = this.offsetTop+20;

//获取点击相对棋盘坐标

var x =e.clientX - l;

var y = e.clientY -t;

// alert(x);

var row,col,index = 0;

if(x%40 < 20){

col = parseInt(x/40);

}else{

col = parseInt(x/40)+1;

}

row = y%40<20 ? parseInt(y/40) : parseInt(y/40)+1;

// alert(row+"行"+col+"行"); //第几列行第几列

if(maps[row][col]===0){

if(isBlack){

ctx.drawImage(black,col*40,row*40); //下黑子

isBlack = false;

maps[row][col] = 2; //黑子为2

iswin(2,row,col);

}else{

ctx.drawImage(white,col*40,row*40);

isBlack = true;

maps[row][col] = 1; //白子为1

iswin(1,row,col);

}

}

function iswin(t,row,col){

var orgrow,orgcol,total;

reset();

// alert(total);

//判断每行是否有五个

while(col>0 &&maps[row][col-1]==t){ //当前子左边还有

total++;

col--;

};

row = orgrow;

col = orgcol;

while(col+1<16 &&maps[row][col+1]==t){ //当前子右边还有

col++;

total++;

};

// alert(total);

celebrate();

//判断每列是否有五个

reset();

while(row>0&&maps[row-1][col]==t){ //当前子上面还有

total++;

row--;

}

row = orgrow;

col = orgcol;

while(row+1<16&&maps[row+1][col]==t){ //下面

total++;

row++;

}

celebrate();

//左上 右下有没有五个

reset();

while(row>0&&col>0&&maps[row-1][col-1]==t){ //左上1

row--;

col--;

total++;

}

row = orgrow;

col = orgcol;

while(row+1<16&&col+1<16&&maps[row+1][col+1]==t){ //右下1

row++;

col++;

total++;

}

// alert(total)

celebrate();

//左下 右上有没有五个

reset();

// alert(total);

while(row>0&&col+1<16&&maps[row-1][col+1]==t){ //右上

row--;

col++;

total++;

}

row = orgrow;

col = orgcol;

while(row+1<16&&col>0&&maps[row+1][col-1]==t){ //左下

row++;

col--;

total++;

}

// alert(total);

celebrate();

function celebrate(){ //显示哪边赢

if(total>=5){

if(t==1){

// alert("白子赢");

// text[0].innerHTML="白子赢";

// cxt1.clearRect(0,0,can1.width,can1.height);

ctx1.clearRect(0,0,can1[0].width,can1[0].height);

ctx1.fillText("白子赢",0,100);

}else{

// alert("黑子赢");

// text[0].innerHTML="黑子赢";

// cxt1.clearRect(0,0,can1.width,can1.height);

ctx1.clearRect(0,0,can1[0].width,can1[0].height);

ctx1.fillText("黑子赢",0,100);

}

}

}

function reset(){

orgrow = row;

orgcol = col;

total = 1;

}

}

}

五子棋游戏代码html,HTML5网页版黑白子五子棋游戏代码相关推荐

  1. 网页游戏五子棋php,HTML5网页版黑白子五子棋游戏的示例代码分享

    闲来无事做,用H5搞了几个小游戏,当然本人只是菜鸟,搞出来玩玩,大神莫喷哦, 1.HTML5网页版黑白子五子棋游戏代码,源码请下载附件! 部分前端代码: 五子棋 *{ margin:0; paddin ...

  2. js HTML5 网页版植物大战僵尸游戏

    js HTML5 网页版植物大战僵尸游戏 源于:http://www.huiyi8.com/moban/ 植物大战僵尸Javascript版 HTML5模版 body{-moz-user-select ...

  3. 《游戏学习》| 水果忍者HTML5网页版在线游戏 | 源码分析

    游戏介绍 这是一款由百度JS小组提供的HTML5版切水果游戏,这款基于HTML5实现的网页版切水果游戏虽然和原版的切水果游戏相比仍有美中不足之处,但也算有声有色,画面效果也十分炫目华丽. 游戏截图 主 ...

  4. 飞机大战HTML5游戏源码,基于Canvas制作的网页版飞机大战游戏+飞机大战手机端

    简介: 飞机大战HTML5游戏源码是一款基于Canvas制作的网页版飞机大战游戏,画质精美的飞机大战手机端游戏源码 网盘下载地址: http://kekewangLuo.net/W1S2LQcqAT2 ...

  5. html5仿网页版微信聊天界面代码

    2019独角兽企业重金招聘Python工程师标准>>> html5仿网页版微信聊天界面代码 转载于:https://my.oschina.net/u/1266171/blog/783 ...

  6. html5游戏开发 网页版-捕鱼达人游戏源码下载

    html5游戏开发 网页版-捕鱼达人游戏源码下载 来玩一把! 转载于:https://www.cnblogs.com/jsfoot/p/3215371.html

  7. 2048网页版html项目报告,jQuery编写网页版2048小游戏

    大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了,但是自己实现起 ...

  8. PopCap推出html5网页版宝石迷阵

    2019独角兽企业重金招聘Python工程师标准>>> 切图网(www.qietu.com):PopCap公司推出网页版游戏宝石迷阵,这是一款经典的老游戏,但是在html5兴起的时候 ...

  9. 网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码

    网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码 完整代码下载地址:网页版打地鼠小游戏源代码,网页版打灰太狼小游戏源码 核心代码 <!DOCTYPE html> <html> ...

最新文章

  1. 读《每天懂一点成功概率学》
  2. [iOS翻译]《The Swift Programming Language》系列:Welcome to Swift-01
  3. redis探秘:选择合适的数据结构,减少80%的内存占用,这些点你get到了吗?
  4. java mvc 菜鸟_Spring MVC 简单入门
  5. 生理性玻璃体混浊的分类与预防控制
  6. apple_Apple WWDC 2018主题总结
  7. python约瑟夫环单向循环链表_用单向循环链表解决约瑟夫环(Joseph)问题
  8. 查看硬件配置信息 lshw
  9. Qt5.12安卓开发环境搭建
  10. 手写基于NIO的迷你版tomcat
  11. book回车键 mac_锋友分享:如何修复MacBook Pro键盘失灵
  12. [ROS Navigation Tuning Guide]翻译
  13. 安装DCOS,关于docker异常引发的调查
  14. 用什么软件可以修改PDF文件,软件的操作方法
  15. 冠名教授|香港科大周晓方教授获颁潘乐陶工程学教授席
  16. 数据库关键字(保留字)
  17. 新媒体运营都包括哪些方面
  18. xenserver新增试验网卡
  19. hashmap!hashmap
  20. 2018ICPC徐州赛区网络预赛

热门文章

  1. CSS之实现图片叠加的层叠层问题
  2. 哈佛大学公开课:计算机科学cs50 学习笔记(第6集:C语言,RAM)
  3. 专属于通信人的情诗--情书
  4. 社群团购小程序 生鲜小程序 平邑微信小程序网站开发
  5. SQL Server 数据完整性规则
  6. 对于初学者来说——蝶衣王是一个不错的选择
  7. 字节跳动端智能工程链路 Pitaya 的架构设计
  8. 项目的登录注册如何用邮箱发送验证码
  9. DB2 package的bind、rebind和db2rbind
  10. [KM算法]hdoj 3718:Similarity