html画布创建黑白象棋棋盘,canvas应用——中国象棋棋盘

CANVAS应用-中国象棋

body{margin: 0;padding: 0;}

#div1{width:620px;height:620px;margin: 0 auto;margin-top: 50px;border: 2px solid #f00;}

#div2{width:605px;height:120px;margin:0 auto;margin-top:10px;border: 2px solid #ccc;}

function canvas1id(){

var canvas=document.getElementById("canvas1");

var hb=canvas.getContext("2d");

canvas.width=620;canvas.height=620;

hb.lineWidth=5;

hb.strokeStyle="#000";

hb.strokeRect(30,30,560,560); //外方框

hb.lineWidth=1;

for(var i=1;i<9;i++) {

if (i > 4) {

hb.moveTo(30, i * 60 + 50);

hb.lineTo(590, i * 60 + 50);

}

else {

hb.moveTo(30, i * 60+30);

hb.lineTo(590, i * 60+30);

}

} //画棋盘横线

for(var i=1;i<8;i++){

hb.moveTo(i*70+30,30);hb.lineTo(i*70+30,270);hb.moveTo(i*70+30,350);hb.lineTo(i*70+30,590);

} //画棋盘竖线

hb.moveTo(240,30);hb.lineTo(380,150);hb.moveTo(380,30);hb.lineTo(240,150);

hb.moveTo(240,590);hb.lineTo(380,470);hb.moveTo(380,590);hb.lineTo(240,470);

hb.stroke(); //画交叉线

hb.font = 'bold 60px arial';

hb.fillText("楚河",80,330);hb.fillText("汉界",420,330); //写汉字

canvas2id();

}

function canvas2id(){

var canvas=document.getElementById("canvas2");

var qh=canvas.getContext("2d");

canvas.width=605;canvas.height=120;

qh.lineWidth=1;qh.strokeStyle="#000";

for(i=0;i<8;i++){

qh.arc(40+75*i, 60, 35, 0, 360);

qh.moveTo((i+2)*75,60);

}

qh.stroke();

qh.font='bold 50px arial';

var qz=["将","仕","相","马","车","炮","兵","兵"];

for(i=0;i<8;i++){

qh.fillText(qz[i],15+75*i,75);

}

canvas3id();

}

好的,以下是一个简单的实现: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>象棋棋盘</title> <style> canvas { border: 1px solid #000; } </style> </head> <body> <canvas id="chessboard"></canvas> <script> const canvas = document.getElementById('chessboard'); const ctx = canvas.getContext('2d'); const width = canvas.width = 500; const height = canvas.height = 500; const row = 10; const col = 9; const gridWidth = width / (col + 1); const gridHeight = height / (row + 1); const xStart = gridWidth; const yStart = gridHeight; // 绘制棋盘格子 function drawGrid() { for (let i = 0; i < col; i++) { for (let j = 0; j < row; j++) { const x = xStart + i * gridWidth; const y = yStart + j * gridHeight; if ((i + j) % 2 === 0) { ctx.fillStyle = '#b58863'; } else { ctx.fillStyle = '#f0d9b5'; } ctx.fillRect(x, y, gridWidth, gridHeight); } } } // 绘制棋盘边框和线条 function drawBorder() { ctx.strokeStyle = '#000'; ctx.lineWidth = 2; ctx.strokeRect(xStart, yStart, col * gridWidth, row * gridHeight); for (let i = 1; i < col; i++) { ctx.beginPath(); ctx.moveTo(xStart + i * gridWidth, yStart); ctx.lineTo(xStart + i * gridWidth, yStart + 4 * gridHeight); ctx.moveTo(xStart + i * gridWidth, yStart + 5 * gridHeight); ctx.lineTo(xStart + i * gridWidth, yStart + row * gridHeight); ctx.stroke(); } for (let i = 1; i < row - 1; i++) { ctx.beginPath(); ctx.moveTo(xStart, yStart + i * gridHeight); ctx.lineTo(xStart + 2 * gridWidth, yStart + i * gridHeight); ctx.moveTo(xStart + 7 * gridWidth, yStart + i * gridHeight); ctx.lineTo(xStart + col * gridWidth, yStart + i * gridHeight); ctx.stroke(); } } drawGrid(); drawBorder(); </script> </body> </html> ``` 这段代码使用了 HTML5 的 `<canvas>` 元素,通过 JavaScript 在画布上绘制了一个象棋棋盘。具体实现过程如下: 1. 使用 `document.getElementById()` 方法获取到 `<canvas>` 元素,并获取到其上下文对象 `ctx`。 2. 定义棋盘的行列数、格子宽度和高度、起始位置等变量。 3. 编写 `drawGrid()` 函数,使用双重循环绘制棋盘格子。对于每个格子,根据奇偶性选择不同颜色填充。 4. 编写 `drawBorder()` 函数,绘制棋盘边框和线条。使用 `strokeRect()` 方法绘制矩形边框,使用 `beginPath()`、`moveTo()` 和 `lineTo()` 方法绘制线条。注意水平线条只需绘制一半,因为棋盘是对称的。 5. 调用 `drawGrid()` 和 `drawBorder()` 函数以绘制完成的棋盘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值