HTML代碼
<canvas id="game"></canvas>
CSS代碼
* {
margin: 0;
padding: 0;
}
#game {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
box-shadow: -2px -2px 2px #efefef, 5px 5px 5px #b9b9b9;
}
JS代碼
window.onload = () => {
let arr = []
for(let i=0;i<15;i++) {
arr[i] = []
for(let j=0;j<15;j++) {
arr[i][j] = 1
}
}
let count = true
let gamer = document.querySelector('#game')
gamer.width = 450
gamer.height = 450
let context = gamer.getContext('2d')
context.strokeStyle = '#999999'
for(let i=0;i<15;i++) {
context.moveTo(15, 15 + i * 30)
context.lineTo(435, 15 + i * 30)
context.stroke()
}
for(let i=0;i<15;i++) {
context.moveTo(15 + i * 30, 15)
context.lineTo(15 + i * 30, 435)
context.stroke()
}
let black = (x, y) => {
let gradient = context.createRadialGradient(x, y, 3, x, y, 13)
gradient.addColorStop(0, '#999999')
gradient.addColorStop(1, '#000000')
context.fillStyle = gradient
context.beginPath()
context.arc(x, y, 13, 0, 2 * Math.PI)
context.fill()
context.closePath()
}
let white = (x, y) => {
let gradient = context.createRadialGradient(x, y, 3, x, y, 13)
gradient.addColorStop(0, '#ffffff')
gradient.addColorStop(1, '#888888')
context.fillStyle = gradient
context.beginPath()
context.arc(x, y, 13, 0, 2 * Math.PI)
context.fill()
context.closePath()
}
gamer.onclick = (e) => {
let x = e.offsetX
let y = e.offsetY
x = Math.floor(x / 30)
y = Math.floor(y / 30)
if(arr[x][y] != 0) {
if(count == true) {
black(x*30+15, y*30+15)
arr[x][y] = 0
count = !count
}else {
white(x*30+15, y*30+15)
arr[x][y] = 0
count = !count
}
}
}
}