还有一个bug,当出现六子连赢的时候,由于在遍历k的时候匹配到两次赢法数组,所以会alert两次“我赢了”
解决这个bug的办法是,当出现“k==5”的时候,直接return,跳出当前循环:
if(myWin[k]==5&&me){
window.alert("你赢了")
over=true
return
}
解决这个bug的办法是,当出现“k==5”的时候,直接return,跳出当前循环:
if(myWin[k]==5&&me){
window.alert("你赢了")
over=true
return
}
2018-04-08
应该加一个是否为me的判断:
for (var k = 0; k < count; k++) {
if (win[i][j][k]) {
myWin[k]++;
computerWin[k]=6;
if(myWin[k]==5&&me){
window.alert("你赢了")
over=true
}
}
}
执行完遍历之后再加上:
me=!me
for (var k = 0; k < count; k++) {
if (win[i][j][k]) {
myWin[k]++;
computerWin[k]=6;
if(myWin[k]==5&&me){
window.alert("你赢了")
over=true
}
}
}
执行完遍历之后再加上:
me=!me
2018-04-08
//斜线
for (var i = 14; i > 3; i--) {
for (var j = 0; j < 11; j++) {
for (var k = 0; k < 5; k++) {
win[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++) {
win[i+k][j+k][count]=true;
}
count++
}
}
for (var i = 14; i > 3; i--) {
for (var j = 0; j < 11; j++) {
for (var k = 0; k < 5; k++) {
win[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++) {
win[i+k][j+k][count]=true;
}
count++
}
}
2018-04-08
// 横向
for (var i = 0; i < 11; i++) {
for (var j = 0; j < 15; j++) {
for (var k = 0; k < 5; k++) {
win[i+k][j][count]=true;
}
count++
}
}
// 纵向
for (var i = 0; i < 15; i++) {
for (var j = 0; j < 11; j++) {
for (var k = 0; k < 5; k++) {
win[i][j+k][count]=true;
}
count++
}
}
for (var i = 0; i < 11; i++) {
for (var j = 0; j < 15; j++) {
for (var k = 0; k < 5; k++) {
win[i+k][j][count]=true;
}
count++
}
}
// 纵向
for (var i = 0; i < 15; i++) {
for (var j = 0; j < 11; j++) {
for (var k = 0; k < 5; k++) {
win[i][j+k][count]=true;
}
count++
}
}
2018-04-08