В общем читаю книгу (Выразительный JavaScript) и начал выполнять первые задания. По итогу застрял на задании по шахматной доске, сделанной из решёток. Пришлось смотреть решение, и я всё равно ничего не понял. Я не могу понять, почему в коде проверяют кратность суммы x и y и почему цикл находится в цикле. И вообще почему это работает?!?!?!!
let size = 8;
let board = "";
for (let y = 0; y < size; y++) {
for (let x = 0; x < size; x++) {
if ((x + y) % 2 == 0) {
board += " ";
} else {
board += "#";
}
}
board += "\n"
}
console.log(board);
Я знаю как работают циклы и условия, но не могу понять как это работает здесь
JavaScript
Кто сможет объяснить мне как работает этот код
Что именно непонятно?
Банальное рисование шахматной доски размера size * size.
Если сумма координат клетки чётная - добавляем в board пробел, если нечётная - добавляем в board решётку. Как только очередная горизонталь доски заполнена - добавляем в board символ перевода строки.
А когда вся доска сформирована - выводим board в консоль.
Если сумма координат клетки чётная - добавляем в board пробел, если нечётная - добавляем в board решётку. Как только очередная горизонталь доски заполнена - добавляем в board символ перевода строки.
А когда вся доска сформирована - выводим board в консоль.
Это такой алгоритм для выяснения, какого цвета должна быть вот эта данная конкретная клетка шахматной доски.
Николай Байса
Я знаю что этот алгоритм делает, я не могу понять как он работает
подумай как вывести шахматную доску.. напиши свой вариант, возможно и поймешь суть
я не смогу я не сумею
Там неебически сложное деление нацело это хитровымудренный трюк чтобы понять который я когда то потратил две недели. Кроче суть в том что остаток от деления не может быть больше делителя по этому что бы не делил числа всегда будут повторятся по кругу 010101 если делить на три то повторятся будут от 0 до 2х эта фича (%2) всегда используется для определения четности т е если остаток от деления числа равен нулю то оно четное если 1 то не четное а дальше цикл смотрит где четные там ставят решетки а где не четные там пробелы(или наоборот но семь такая ). Два цикла один рисует строчки другой столбцы . Конкретно там используется сумма x+y она как раз хорошо подходит для номеров строк и столбцов.
В результате получается как раз шахматная доска в которой четные черные не четные белые
В результате получается как раз шахматная доска в которой четные черные не четные белые
знак %- 'то не деление, а остаток от деления...
Далее, судя по Вашим рассуждениям, в первом цикле (0+0) % 2 дает 0, будет выполнено первое условие, если остаток будет не 0, то после условие после else....
Далее, судя по Вашим рассуждениям, в первом цикле (0+0) % 2 дает 0, будет выполнено первое условие, если остаток будет не 0, то после условие после else....
Похожие вопросы
- Объясните пошагово, как работает это выражение
- Проверьте 2 кода ((( пожалуйста и ткните носом на ошибку. В общем 1 код работает частично, а второй вообще не работает. JS
- Гляньте код пожалуйста? Он работает, но мне кажется так не пишут. Да и по default что то не хочет работать код.
- Посмотрите пожалуйста задание. Всё работает. Тем не менее, интересно услышать замечания по коду.
- Объясните кусок кода змейки на js
- Не могу понять почему код на js не работает.
- Вопрос только к тем, кто знает js: Кому не лень, объясните мне нубу значение каждого элемента небольшого кода (10 строк).
- Как работает код?
- Почему таккой код не работает?
- Объясните код. Что происходит на каждой строчке. Поэтапно.
Циклы снова повторяются и унас уже x и y равны единице, получается в условии теперь будет решётка, а куда её вообще ставят то, в строку или в столбец.
И далее эти циклы опять повторяются, но в сумме они всегда теперь будут чётные же, по итогу у нас сплошным будут одни пробелы, а в результате всё окей. Как это работате я просто не могу понять, вообще ничего не понимаю