還有一個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