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

为什么填满五颗子不弹出你赢了呢?

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

var count = 0;
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<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++;
	}
}

for (var i=0;i<count;i++) {
	myWin[i] = 0;
	computerWin[i] = 0;
}

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

context.strokeStyle="#BFBFBF";

var logo = new Image();
logo.src="img/logo.png";
logo.onload = function(){
	context.drawImage(logo, 0, 0, 450, 450);
	drawChessBard();
}

var drawChessBard = 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){
	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;
				}
			}
		}
	}	
}

求大神指教

正在回答

1 回答

解决了,

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

这写成大于count了

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

举报

0/150
提交
取消

为什么填满五颗子不弹出你赢了呢?

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