Дано массив, нужно заменить окруженные значения пример на картинке:
все значения ниже красной линии должны быть 6, все что имеет контакт через соседние позиции с верхом должно остаться не тронутым. Прошу хотя бы пнуть в какую сторону смотреть, даже примерно не могу сообразить как такое реализовать.
var arrayGrid = [
[5, 2, 3, 0, 2, 0, 3, 5, 3, 5],
[4, 3, 3, 4, 4, 0, 2, 0, 2, 0],
[2, 3, 5, 3, 1, 1, 4, 5, 4, 2],
[2, 1, 3, 0, 1, 1, 2, 2, 1, 5],
[3, 4, 3, 4, 1, 4, 2, 6, 2, 2],
[5, 3, 1, 0, 5, 2, 6, 2, 1, 0],
[0, 0, 6, 6, 3, 6, 6, 6, 6, 1],
[6, 6, 6, 6, 6, 6, 6, 4, 2, 3],
[6, 3, 6, 6, 6, 6, 3, 4, 3, 4],
[6, 6, 6, 6, 6, 6, 6, 5, 2, 6],
[6, 6, 6, 6, 6, 6, 1, 6, 6, 2],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
]
var line = []
function findClear(y, x) {
if (x >= 10) {
return line;
}
if (arrayGrid[y - 1][x + 1] == 6) {
line.push(y - 1)
findClear(y - 1, x + 1)
} else if (arrayGrid[y][x + 1] == 6) {
line.push(y)
findClear(y, x + 1)
} else if (arrayGrid[y + 1][x + 1] == 6) {
line.push(y + 1)
findClear(y + 1, x + 1)
}
}
findClear(7, 0)
console.log(line)
if(line.length < 10){
line = [];
findClearOpposite(9, 10)
}
function findClearOpposite(y, x) {
if (x < 0) {
return line;
}
if (arrayGrid[y - 1][x - 1] == 6) {
line.push(y - 1)
findClearOpposite(y - 1, x - 1)
} else if (arrayGrid[y][x - 1] == 6) {
line.push(y)
findClearOpposite(y, x - 1)
} else if (arrayGrid[y + 1][x - 1] == 6) {
line.push(y + 1)
findClearOpposite(y + 1, x - 1)
}
}
console.log(line)
Задача решена простым способом если не получилось слева направо, то пробуем справа налево. Большое спасибо за идеи и советы.
Ловите решение:
var array =
[
[5, 2, 3, 0, 2, 0, 3, 5, 3, 5],
[4, 3, 3, 4, 4, 0, 2, 0, 2, 0],
[2, 3, 5, 3, 1, 1, 4, 5, 4, 2],
[2, 1, 3, 0, 1, 1, 2, 2, 1, 5],
[3, 4, 3, 4, 1, 4, 2, 6, 2, 2],
[5, 3, 1, 0, 5, 2, 6, 2, 1, 0],
[0, 0, 6, 6, 3, 6, 6, 6, 6, 1],
[6, 6, 6, 6, 6, 6, 6, 4, 2, 3],
[6, 3, 6, 6, 6, 6, 3, 4, 3, 4],
[6, 6, 6, 6, 6, 6, 6, 5, 2, 6],
[6, 6, 6, 6, 6, 6, 1, 6, 6, 2],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6],
[6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
],
line = [7,7,6,6,7,8,9,10,10,9];
for(var y = 0; y < array.length; y++)
{
for(var x = 0; x < array[y].length; x++)
{
if(y > line[x])
array[y][x] = 6
}
}
console.log(array);
Добавлено спустя 12 часов:
Поскольку мне из нижеследующего общения стали известны ваши намерения и название игры, то полный код вашей игры на чистом JavaScript с подробным объяснением вы найдёте по ссылкам:
Код вашей игры на чистом JavaScript с подробным объяснением
Код вашей игры «Bubble-Shooter-HTML5» на Github
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть alertОн отображается когда значение переменной в store равно true
у меня есть html таблица, из двух колонок, необходимо по нажатию на кнопку записывать данные со второго столбца в local storageпри проверке инспектором...
Подскажите, что-то никак не соображу: есть верстка из 4 элементов, в котором есть в поле div число (наценка)Нужно собрать эти числа, к каждому...