Римейк вопроса, который участники, возмущенные отсутствием моих вариантов решение - закрыли
Игра. Зона влияния города
Есть часть глобальной карты (двумерная матрица), в центре которой находится город. У города есть сила влияния. С каждым шагом от города, сила влияния становится меньше. Необходимо заполнить все элементы матрицы соответствующим значением силы влияния. Рисунок для иллюстрации
Например, сила влияния города 150 пунктов. Шаг уменьшения силы влияния 100 пунктов. Клетки которые прилегают к городу, будут иметь силу влияния 150 пунктов, следующие за ними 50 пунктов, а дальше 0.
Самым сложным в этой задаче оказалось установить вес влияния города на клетки, которые находятся не на прямой линии
const listColors = [
"black",
"yellow",
"blue",
"green",
"red",
"brown",
"pink",
"silver",
];
const value = 24000;
const step = 10000;
const area = [];
const size = 9;
for (let i = 0; i < size; i++) {
const row = [];
area.push(row);
for (let h = 0; h < size; h++) {
row.push(0);
}
}
function setWeight(arr) {
const center = Math.floor(arr.length / 2);
for (let i = 0; i < arr.length; i++) {
const row = arr[i];
for (let h = 0; h < row.length; h++) {
let newX = Math.abs(center - i);
let newY = Math.abs(center - h);
let weight = Math.max(newX, newY);
weight = weight < 0 ? 0 : weight;
const maxValue = weight * step;
let power = maxValue <= value ? value - maxValue : step - (maxValue - value);
power = value - maxValue < 0 ? 0 : power;
const template = {
power,
weight
}
row[h] = template;
}
}
createTemplate(arr);
}
function createTemplate(arr) {
const app = document.querySelector("#app");
for (let i = 0; i < arr.length; i++) {
const el = arr[i];
const row = document.createElement("div");
row.classList.add("row");
app.appendChild(row);
for (let h = 0; h < el.length; h++) {
const item = el[h];
const cell = document.createElement("div");
cell.classList.add("cell");
cell.style.backgroundColor = listColors[item.weight];
row.appendChild(cell);
}
}
}
setWeight(area);
.row {
display: flex;
}
.cell {
width: 30px;
height: 30px;
border: 1px solid;
}
<div id="app">
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
с помощью js нужно найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N, N вводим сами
Всем привет! У меня есть массив с объектами (data), также есть функция, которая выводить разметку и элементами из объектов внутри массиваМне...
В расширении для Chrome я пытаюсь загрузить некоторый скрипт с помощью XMLHttpRequest, но получаю следующую ошибку: