⊗jsPrTTTCTAA 44 of 62 menu

Хрестик ва ноликни алмаштириш

Бу дарсда мен сизга хрестик ва ноликни алмаштиришни бир сатр кодда қандай қилишни кўрсатмоқчиман. Сиз эҳтимол, буни шундай қилгансиз:

function start(cells) { let i = 0; // ҳисоблагчининг бошланғич қиймати for (let cell of cells) { cell.addEventListener('click', function() { if (i % 2 == 0) { this.textContent = 'X'; } else { this.textContent = '0'; } i++; // ҳисоблагчини орттирамиз }); } }

Мен масалани қисқароқ ҳал қилишни таклиф қиламан. Ҳар икки 'ўйинчи' учун массив яратайлик:

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

Кўриб тургангиздек, бу массивда Х белгиси 0 калитга эга, нолик эса 1 калитга эга. i % 2 учун ҳам шуни айтиш мумкин - Х учун қолдиқ 0 бўлади, нолик учун эса 1 бўлади.

Яъни бу нарсани калит ўрнига ишлатиш мумкин:

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

Яна ҳам қисқароқ:

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

Яна ҳам қисқароқ:

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

Энди start функциямизнинг кодини соддалаштирамиз:

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

Мустақил равишда, менинг кодимга қарамай, тавсирланган ўзгартиришларни киритинг.

Ҳозирда ҳар қандай ҳужайрага чексиз марта босиб, масалан, Х ни О га алмаштириш мумкин. Буни тузатинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш