Análisis de la alternancia entre X y O
En esta lección quiero mostrarles cómo hacer la alternancia entre X y O en una sola línea. Probablemente, hicieron algo como esto:
function start(cells) {
let i = 0; // valor inicial del contador
for (let cell of cells) {
cell.addEventListener('click', function() {
if (i % 2 == 0) {
this.textContent = 'X';
} else {
this.textContent = '0';
}
i++; // incrementamos el contador
});
}
}
Voy a proponer una solución más corta. Hagamos
un array de nuestros 'jugadores':
let gamers = ['X', 'O'];
Como pueden ver, en este array la X tiene
la clave 0, y el O - la clave 1. Lo
mismo se puede decir sobre i % 2
- para la X el resto será 0, y
para el O - 1.
Es decir, esto se puede usar en lugar de la clave:
let gamers = ['X', 'O'];
let key = i % 2;
console.log(gamers[key]);
O aún más corto:
let gamers = ['X', 'O'];
console.log(gamers[i % 2]);
O aún más corto:
console.log(['X', 'O'][i % 2]);
Simplifiquemos ahora el código de nuestra función start:
function start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function() {
this.textContent = ['X', 'O'][i % 2];
i++;
});
}
}
Por su cuenta, sin mirar mi código, incorporen el cambio descrito.
Actualmente, se puede hacer un número ilimitado de clics en cualquier celda, cambiando, por ejemplo, la X por el O. Corrijan esto.