Estoy tratando de hacer un juego tiktakto simple con html, css, js. Estoy creando un modo de juego en el que puedes enfrentarte a la computadora. Se supone que este código verifica si el bot debe bloquear una columna:
for(let i = 0; i <= 2; i++) { for(j = 0; j <= 2; j++) { console.log("j = ", j) S += board[j][i]; } // <-- inside for loop j only goes from 0 to 2 if(S === 2) // <-- inside of this if statemnt j is 3 { console.log("j = ", j) if(prevent(i, j, "column")) return 1; else return 0; } S = 0; }Sin embargo, en algún lugar después del bucle for, el valor de j pasa aleatoriamente de 2 a 3 antes de que se pueda ejecutar la función prevent(), ¿por qué?
Esto para bucle:
for (j = 0; j <= 2; j++) { console.log("j = ", j) S += board[j][i]; }Es equivalente a este ciclo while:
j = 0 while (j <= 2) { console.log("j = ", j) S += board[j][i]; j++ } Entonces, si j <= 2 es true , se ejecuta el cuerpo del cuerpo del bucle y también el j++ .
El ciclo for solo se detendrá una vez que la condición se evalúe como falsa. Aquí, la primera vez que j <= 2 es false es cuando j se ha incrementado a 3 .