HTML 5 标签及简单的五子棋制作
浏览量:461
想学习一下html5+css3 ,更想了解一下人机大战的原理,最终我成功了
第一步:htmL编写
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>五子棋</title> <link href="css/style.css" type="text/css" rel="stylesheet"> <script src="js/jquery-2.1.3.min.js"></script> <style> #canvas{ display: block; margin: 50px auto; box-shadow: -2px -2px 2px #EFEFEF,5px 5px 5px #B9B9B9; } </style> <!--[if lt IE 9]> <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"> </script> <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"> </script> <![endif]--> </head> <body> <canvas id="chess" width="450px" height="450px"> </canvas> <script type="text/javascript" src="js/script.js"></script> </body> </html>
第二步 js编写
var chessbox = []; var me = true; for (var i = 0; i <15; i++) { chessbox[i] = []; for (var j = 0 ; j < 15 ; j++ ) { chessbox[i][j] = 0; } } //获取棋盘 var chess = document.getElementById("chess"); var context = chess.getContext('2d'); //画棋盘的线 context.strokeStyle = "#BFBFBF"; var logo = new Image(); logo.src = "111.png"; //棋盘的背景图片 //图片加载完在处理 logo.onload = function(){ //背景图片的大小 context.drawImage(logo,0,0,450,450); //棋盘 drawChessBoard(); //oneStep(0,0,true);黑色的棋子 //oneStep(1,1,false);白色的棋子 } //画棋盘 var drawChessBoard = function(){ for (var i = 0; i <15; i++) { 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(); } } var oneStep = function(i,j,me){ //画圆 context.beginPath(); context.arc(15+i*30,15+j*30,13,0,2*Math.PI) context.closePath(); context.stroke(); //描边 var gradient = context.createRadialGradient(15 + i*30 + 2,15+j*30 - 2,13,15 + i*30 + 2,15 + j*30 - 2,0); //判断是黑棋子还是白色棋子 if(me){ gradient.addColorStop(0 , "#0A0A0A"); gradient.addColorStop(1 , "#636766"); }else{ gradient.addColorStop(0 , "#D1D1D1"); gradient.addColorStop(1 , "#F9F9F9"); } context.fillStyle = gradient; context.fill(); //填充 } //点击下不用类型棋子 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(chessbox[i][j] ==0){ oneStep(i,j,me); if(me){ chessbox[i][j] = 1; me = false; }else{ chessbox[i][j] = 2; me = true; } } }
最后展示样式,嘻嘻
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。