JavaScript හි ක්රීඩා එකේ ජයග්රහණය පරීක්ෂා කිරීම
දැන් ජයග්රාහකයාගේ නම තීරණය කර ප්රදර්ශනය කරන කේතය ලිවීමට කාලයයි.
කාර්යය සලකා බලා, ජයග්රහණය පැවතීම පරීක්ෂා කිරීම සෑම පියවරකදීම සිදු කළ යුතු බව ඔබට තේරුම් ගත හැකිය:
javascriptfunction init(selector) {
let cells = document.querySelectorAll('#field td');
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function step() {
this.textContent = ['X', 'O'][i % 2];
this.removeEventListener('click', step);
// මෙහිදී අපි ජයග්රහණය හෝ අවසන් කිරීම පරීක්ෂා කළ යුතුය
i++;
});
}
}
අපි isVictory ශ්රිතයක් සාදමු,
එය පරාමිතියක් ලෙස සෛල අරාවක් පිළිගෙන
true ආපසු ලබා දෙනු ඇත, ක්ෂේත්රයේ
ජයග්රහණයක් තිබේ නම්, සහ false, නොමැති නම්. අපි
මෙම ක්රියාකාරීත්වය පහත පරිදි භාවිතා කරමු
ක්රමය:
javascriptfunction start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function step() {
this.textContent = ['X', 'O'][i % 2];
this.removeEventListener('click', step);
if (isVictory(cells)) {
alert('ජයග්රාහකයාගේ නම');
}
i++;
});
}
}
ජයග්රාහකයාගේ නම අපි දැනගන්නේ කෙසේද? පැහැදිලිවම,
එහි නම ගබඩා කර ඇත්තේ ජයග්රහණය ලැබූ සෑම
සෛලයකම වේ. මම පැහැදිලි කරමි: අපට ජයග්රහණයක් තිබේ නම්, එසේ නම්
මෙයින් අදහස් කරන්නේ සමහර 3 සෛල
�ිරස් අතට, සිරස් අතට හෝ විකර්ණව අඩංගු වන බවයි
එකම අගය: එක්කෝ X, එක්කෝ O.
පැහැදිලිවම, මෙම සෛලවලින් ඕනෑම එකක අගය එය ජයග්රාහකයාගේ නම වේ. නමුත් ඔබට වෙනත් ආකාරයකින් ද යා හැකිය, අඩු පැහැදිලි මාර්ගයක්: අපි තීරණය කරන බැවින් සෑම පියවරකදීම ජයග්රහණයේ පැවැත්ම, එසේ නම් ජයග්රාහකයා වනුයේ අවසන් ක්රියාව සිදු කළ ක්රීඩකයාය. මෙම ක්රීඩකයාගේ නම ක්ලික් කළ සෛලයේ අන්තර්ගතයේ අඩංගු වේ:
javascriptfunction start(cells) {
let i = 0;
for (let cell of cells) {
cell.addEventListener('click', function step() {
this.textContent = ['X', 'O'][i % 2];
this.removeEventListener('click', step);
if (isVictory(cells)) {
alert(this.textContent); // ජයග්රාහකයාගේ නම ප්රදර්ශනය කරන්න
}
i++;
});
}
}
isVictory ක්රියාත්මක කිරීම
ක්ෂේත්රයේ ජයග්රහණයක් ඇති බව තාක්ෂණිකව තීරණය කරන්නේ කෙසේද? ඔබ හොඳින් සලකා බැලුවහොත්, ක්ෂේත්රයේ සීමිත ප්රමාණයක ත්රිත්ව සෛල ඇති බව නිගමනය කළ හැකිය.
එනම්, ජයග්රහණය පරීක්ෂා කිරීම සඳහා ඔබට සරලව මෙම ත්රිත්ව සියල්ල පරීක්ෂා කළ හැකිය. එය පරීක්ෂා කළ යුතුය ත්රිත්වවලට සමාන හිස් නොවන අගයන් ඇති බව (එනම් එහි X හෝ O).
ද්විමාන අරාවක් සාදමු, එහි එක් එක් උප අරාවෙහි ත්රිත්වවලින් එකක සෛල අංක ඇත:
javascriptlet combs = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
];
මෙම අරාව භාවිතා කරමින් ජයග්රහණය නිර්වචනය කිරීම ලියන්න:
javascriptfunction isVictory(cells) {
let combs = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
];
for (let comb of combs) {
if (
cells[comb[0]].textContent == cells[comb[1]].textContent &&
cells[comb[1]].textContent == cells[comb[2]].textContent &&
cells[comb[0]].textContent != ''
) {
return true;
}
}
return false;
}
මගේ කේතය දෙස නොබලා, ස්වාධීනව විස්තර කළ දේ ක්රියාත්මක කරන්න. ක්රියාවලිය ක්රියා කරන ආකාරය පරීක්ෂා කරන්න ක්රීඩාවේ.
අවසන් කිරීම පරීක්ෂා කිරීම ක්රියාත්මක කිරීමට උත්සාහ කරන්න. මීළඟ පාඩමේදී මෙම ස්ථානය විශ්ලේෂණය කෙරේ.