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

js判断输赢的弹框出不来

// JavaScript Document

var chessBoard=[];

var me=true;

var over=false;


//赢法数组

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] = [];

}

}


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 = 14; j>3; 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 = 0; j < 11; j++) {

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

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

}

count++;

}

}



var count = 0;

console.log(count);


//初始化为0

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

{

myWin[i]=0;

computerWin[i]=0;

}






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

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

ctx.strokeStyle="black";


/*..............................棋盘的画法..................*/

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

{

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

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

    ctx.stroke();


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

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

    ctx.stroke();

}

/*..........................棋子的画法..........................*/

var oneStep=function(i,j,me)

{

ctx.beginPath();

    ctx.arc(15+i*30,15+j*30,13,0,Math.PI*2,true);

    ctx.closePath();

if(me)

{

ctx.fillStyle="black";

ctx.fill();

}

else

{

ctx.fillStyle="white";

ctx.fill();

}

    

    ctx.stroke()

}


/*............................实现落棋..............................*/

chess.onclick=function(e)

{

if(over)

{

return;

}

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;

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

{

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

{

myWin[k]++;

computerWin[k]=6;

if(myWin[k]==5)

{

window.alert("您赢了");

over=true;

}

}

}

}

}




正在回答

4 回答

已改好 建议多写 多练   

var chessBoard = [];
   var me = true;
   var over = false;
   var count = 0;

//赢法数组
   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] = [];
       }
   }

   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 < 15; i++) {
       for (var j = 0; j < 11; j++) {
           for (var k = 0; k < 5; k++) {
               wins[i][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++;
       }
   }

   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++;
       }
   }

   console.log(count);

//初始化为0
   for (var i = 0; i < count; i++) {
       myWin[i] = 0;
       computerWin[i] = 0;
   }


   var chess = document.getElementById('chess');
   var ctx = chess.getContext('2d');

   /*..............................棋盘的画法..................*/
   for (var i = 0; i < 15; i++) {
       ctx.beginPath();
       ctx.moveTo(15 + i * 30, 15);
       ctx.lineTo(15 + i * 30, 435);
       ctx.stroke();

       ctx.beginPath();
       ctx.moveTo(15, 15 + i * 30);
       ctx.lineTo(435, 15 + i * 30);
       ctx.stroke();
   }
   /*..........................棋子的画法..........................*/
   var oneStep = function (i, j, me) {
       ctx.beginPath();
       ctx.arc(15 + i * 30, 15 + j * 30, 13, 0, Math.PI * 2, true);
       ctx.closePath();
       if (me) {
           ctx.fillStyle = "black";
           ctx.fill();

       }
       else {
           ctx.fillStyle = "white";
           ctx.fill();
       }

       ctx.stroke()
   }

   /*............................实现落棋..............................*/
   chess.onclick = function (e) {
       if (over) {
           return;
       }
       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;
           for (var k = 0; k < count; k++) {
               if (wins[i][j][k]) {
                   myWin[k]++;
                   computerWin[k] = 6;
                   if (myWin[k] == 5) {
                       window.alert("您赢了");
                       over = true;

                   }
               }
           }
       }
   }

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

weibo_戴帽子的小姑凉100_0 提问者

非常感谢!
2017-09-06 回复 有任何疑惑可以回复我~

代表多少种赢法的count的声明应该放在最上面

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

weibo_戴帽子的小姑凉100_0 提问者

哦,非常感谢
2017-09-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

js判断输赢的弹框出不来

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