Заметки репетитор по физике, математике, программированию. Разбор интересных задач, типичных ошибок и способов их решения.
elementList.
📄 Исходный код:
https://jsfiddle.net/9md108g3/3/ (работает через VPN)
https://pastebin.com/Rbbwf5pK
📖 Что почитать по теме:
▪️ htmlacademy.ru/blog/js…closures
▪️ https://learn.javascript.ru/closure
▪️ https://habr.com/ru/company/ruvds/blog/424967/
#javascript #js #замыканияreturn (a > b)? ((a > c)? a : c) : (b > c)? b : c;Мелочь, а приятно. Бокал кофе 🥃 за элегантность тернарного оператора. Кстати, такое возможно не только в си-подобных язык программирование. Можно и в Python, к примеру. Синтаксис тернарного в Python: a if condition else b Реализация возможна такая:
def getMax(a, b, c):
return (a if (a > c) else c) if (a > b) else (b if (b > c) else c)
Также в Python можно индексировать кортеж:
(falseValue, trueValue)[bool(condition)]Пример для двух переменных:
def getMax2(a, b):
return (b, a)[bool(a > b)]
Лично мне не очень нравится тернарный оператор в Python, т.к. рассматривать логику приходится с середины выражения. Хотя своей элегантностью и компактностью Python превосходит многие языки программирования. В си-подобных языках этот оператор более последователен и прост в понимании. В целом, эксперты программирования не советуют усложнять логику своих программ. Так как большинство сложных проектов делают несколько людей, то ваш код в первую очередь должен быть понятен для других людей. Поэтому не всегда нужно использовать замудренные конструкции языка.
❓А если вы их (лайфхаки и слишком мудрые конструкции ЯП) используете, то стоит ли писать причину этому в комментарии перед реализацией метода или процедуры ? Напишите ваше мнение в комментариях. [8][8], в которой цифрой "1" отмечены места, в которых стоят ладьи. По этой матрице строится другая матрица, в которой "0" отмечаются свободные поля, а клетки, которые находятся под ударом отмечаются FLAG_ATTACK = -1. По матрице позиций под атакой рисуются красные клетки, иллюстрирующие запрещенные ходы.
Остальная доска рисуется алгоритмом, который переключает цвета с помощью деления по модулю 2. ( 0 - белый цвет, 1 - серый ). Плюс для компактности я решил использовать сквозной индекс по двумерному массиву. Хотя, вложенных циклов в некоторых местах итак получилось по 4.
Думаю, что графических процедур в программе будет достаточно, чтобы написать какую-нибудь простенькую пиксельную игру типа "змейка" :) Если вам было бы интересно почитать про реализацию змейки или другой пиксельной игры, то напишите об этом в комментариях и проявите какую-то активность.
📝 В данном случае язык реализации был Pascal ( IDE: PascalABC ).
https://pastebin.com/yg5zKEu7
#математика #программирование #информатика #pascal #delphi