为了账号安全,请及时绑定邮箱和手机立即绑定

为什么判断不了有没有赢?

// JavaScript Document

var chessBoard = [];

var me = true;

var over=false;

 

//AI 赢法数组

var wins=[];


//赢法的统计数组

var myWin=[];

var computerWin=[];


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

chessBoard[i]=[];

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

chessBoard[i][j]=0;

}

}


//三维数组

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

wins[i]=[];

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

wins[i][j]=[];

}

}


var count = 0;

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

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

//wins[0][0][0]=true;

//wins[0][1][0]=true;

//wins[0][2][0]=true;

//wins[0][3][0]=true;

//wins[0][4][0]=true;

//wins[0][1][1]=true;

//wins[0][2][1]=true;

//wins[0][3][1]=true;

//wins[0][4][1]=true;

//wins[0][5][1]=true;

for(var k=0;k<5;k++){

wins[i][j+k][count]=true;

}

count++;

}

}



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

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

for(var k=0;k<5;k++){

wins[j+k][i][count]=true;

}

count++;

}

}



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

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

for(var k=0;k<5;k++){

wins[i+k][j+k][count]=true;

}

count++;

}

}


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

for(var j=14;j>3;j--){

for(var k=0;k<5;k++){

wins[i+k][j-k][count]=true;

}

count++;

}

}


console.log(count);//统计多少种赢法


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

myWin[i]=0;

computerWin[i]=0;

}


//UI

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();//horizontal line

context.moveTo(15,15+i*30);

    context.lineTo(435,15+i*30);

    context.stroke();//vertical line

}

}


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();//context.stroke();

}


//下棋

chess.onclick = function(e){

if(over){

  return false;

}

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;//白棋为1

}

else{

chessBoard[i][j]=2;

}

me=!me;

for(var k=0;k<count;k++){

if(wins[i][j][k]){

myWin[k]++;

computerWin[k]=6;

if(myWin[k]==5 ){

window.alter("You win!");

over=true;

}

}

}

}

}


正在回答

2 回答

alter改成alert

0 回复 有任何疑惑可以回复我~

alert('You win!');  //not alter

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么判断不了有没有赢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信