⊗jsPrTTTCTAA 44 of 62 menu

Analyse de l'alternance entre croix et rond

Dans cette leçon, je veux vous montrer comment réaliser l'alternance entre croix et rond en une seule ligne. Vous avez probablement fait quelque chose comme ceci :

function start(cells) { let i = 0; // valeur initiale du compteur for (let cell of cells) { cell.addEventListener('click', function() { if (i % 2 == 0) { this.textContent = 'X'; } else { this.textContent = '0'; } i++; // on incrémente le compteur }); } }

Je propose de résoudre le problème plus brièvement. Créons un tableau de nos 'joueurs' :

let gamers = ['X', 'O'];

Comme vous le voyez, dans ce tableau, la croix a la clé 0, et le rond - la clé 1. On peut dire la même chose de i % 2 - pour la croix, le reste sera 0, et pour le rond - 1.

C'est-à-dire qu'on peut utiliser cette expression à la place de la clé :

let gamers = ['X', 'O']; let key = i % 2; console.log(gamers[key]);

Ou encore plus court :

let gamers = ['X', 'O']; console.log(gamers[i % 2]);

Ou encore plus court :

console.log(['X', 'O'][i % 2]);

Simplifions maintenant le code de notre fonction start :

function start(cells) { let i = 0; for (let cell of cells) { cell.addEventListener('click', function() { this.textContent = ['X', 'O'][i % 2]; i++; }); } }

Indépendamment, sans regarder mon code, apportez la modification décrite.

Actuellement, on peut cliquer un nombre illimité de fois sur n'importe quelle cellule, changeant, par exemple, une croix en rond. Corrigez cela.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser