Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Алгоритм игры в крестики-нолики js

VIktor Ученик (55), на голосовании 1 год назад
помогите пожалуйста с алгоритмом для игры крестики-нолики, хочу сделать функцию для проверки горизонтали и проверки вертикали, или можно в одной функции сделать я хз, нужно проверять сколько подряд идет эллементов и возвращать их количество вот как в 1ом столбце 4 эллемента подряд из функции надо вернуть 4 и делать эти элименты массива не активными, то есть при следующем подсчете они уже не учитываются, то же самое и с ноликами по вертикали, должна функция вернуть 3, а я их даже посчитать не могу.

вот накидал функцию для горизтали вызываю ее после клика на ячейщку на странице и в каунт почему-то записывается какие-то непонятные цифры 11,12 и т.д.
 function checkHorisontal(matrix) { 
let count = 1;
for (let i = 0; i < matrix.length; i++) {
for (let j = 0; j < matrix.length; j++) {
if (matrix[i][j] === matrix[i][j + 1]) {
count++;
}
}
}
return count;
}
Голосование за лучший ответ
Саня Семенов Оракул (60497) 1 год назад
 const arr = [["-", "-", "-", "-", "-", "-"], ["-", "x", "-", "-", "-", "-"], ["-", "x", "-", "-", "-", "-"], ["-", "-", "o", "o", "o", "-"], ["-", "x", "-", "-", "-", "-"], ["-", "-", "-", "-", "-", "-"]]; 

// Поиск последовательности по горизонтали
for (let i = 0; i < arr.length; i++) {
let count = 0;
let lastChar = "";
for (let j = 0; j < arr[i].length; j++) {
let currChar = arr[i][j];
if (currChar !== "-" && currChar === lastChar) {
count++;
if (count === 2) {
console.log(`Найдено подряд идущих ${currChar} на строке ${i}: от (${j - 1},${i}) до (${j + 1},${i})`);
} else if (count > 2) {
console.log(`Продолжение подряд идущих ${currChar} на строке ${i}: до (${j + 1},${i})`);
}
} else {
count = 1;
lastChar = currChar;
}
}
}

// Поиск последовательности по вертикали
for (let i = 0; i < arr[0].length; i++) {
let count = 0;
let lastChar = "";
for (let j = 0; j < arr.length; j++) {
let currChar = arr[j][i];
if (currChar !== "-" && currChar === lastChar) {
count++;
if (count === 2) {
console.log(`Найдено подряд идущих ${currChar} на столбце ${i}: от (${i},${j - 1}) до (${i},${j + 1})`);
} else if (count > 2) {
console.log(`Продолжение подряд идущих ${currChar} на столбце ${i}: до (${i},${j + 1})`);
}
} else {
count = 1;
lastChar = currChar;
}
}
}

// Поиск последовательности по диагонали
for (let i = 0; i < arr.length - 2; i++) {
for (let j = 0; j < arr[i].length - 2; j++) {
let currChar = arr[i][j];
if (currChar !== "-") {
if (currChar === arr[i + 1][j + 1] && currChar === arr[i + 2][j + 2]) {
console.log(`Найдено подряд идущих ${currChar} на диагонали (${j},${i})-(${j + 2},${i + 2})`);
}
}
}
}

пс если не умеешь своим мозгом юзай искусственный
VIktorУченик (55) 1 год назад
пс если ты кидаешь ответы с этой залупы ты тоже не особо умеешь своим мозгом пользоваться))
Похожие вопросы