点击落子时没反应,路过的大神给看看!

来源:2-5 落子实现

积雪草1

2016-07-28 00:08


var chessBoard=[];

var me=true;


for(var i=0;i<15;i++){

chessBoard[i]=[];

for(var j=0;j<15;j++){

chessBoard[i][j]=0;

}

}


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

var context = chess.getContext('2d');


context.strokeStyle="#bfbfbf";


var logo=new Image();

logo.src="images/logo.jpg";

logo.onload=function(){

context.drawImage(logo,0,0,450,450);

drawChessBoard();


}


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;

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 y=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;

}

}


写回答 关注

2回答

  • 慕粉4229326
    2016-10-21 10:49:46

    var y=Math.floor(y/30);错了,改成var j=Math.floor(y/30);

  • 灿烂满天星
    2016-07-28 09:00:59

    再检查一下代码吧

    积雪草1

    我自己已经检查几遍了,自己打的自己检查不出来了(—_—)

    2016-07-28 17:08:06

    共 1 条回复 >

JS实现人机大战之五子棋(UI篇)

利用js及canvas绘图知识,实现程序界面编写和交互逻辑处理

35650 学习 · 136 问题

查看课程

相似问题