总是黑子怎么解决

来源:3-1 案例总结

俊发

2017-05-11 11:27

var me= true; 

var chessBoard=[];


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="#0A0A0A";//棋盘画线的颜色

//画出图片

var logo = new Image();

logo.src="img/timg.jpg";

logo.onload=function(){//绘制背景图片

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

drawChessBoard();//调用画棋盘的函数

 //   oneStep(0,0,true);//0的位置放置黑棋

   // oneStep(1,1,false);//1的位置放置白棋

}


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){//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 j=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;

}

}

 

写回答 关注

1回答

  • 精于勤荒于嬉
    2017-05-13 17:50:41

    me != me;

    应该是me=!me;取反

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

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

35650 学习 · 136 问题

查看课程

相似问题