Ваша Всратость
Первое учебно-боевое применение Ржавчины.
А не захерачить ли конвеевскую "Жизнь" в текстовом режиме, по итогам сгенерить таблицу конечного состояния, которую затем в виде джсона прочитать жабоскриптом и отобразить на канвасе. Пока идет тестовая прогонка клеточного движка, выводящего начальное состояние на основе ГСЧ, итоги которой выглядят каг-то таг:

Подчеркивание - пустые клетки, плюс - живые

@темы: кодерастия, от нехрена делать

Комментарии
22.11.2019 в 23:53

Все (не)совпадения (не)случайны
Я б , наверное, удивлялась и восторгалась, если бы понимала, что тут вообще происходит 😅
23.11.2019 в 00:12

Ваша Всратость
Ну чо-то в таком духе должно получицо.

Самое интересноэ, впрочем, тут под капотом. Предыдущая картинко сделана достаточно простым, но тормознутеньким жабоскриптом. На просчет 750 шагов и генерацию одного кадра уходит порядка полутора секунд, и это чуть более, чем дохрена. Ржавчина должна пережевывать цифры в разы быстрее.
23.11.2019 в 11:22

Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Какой компилятор хитрый, даже об именах переменных имеет мнение. По-моему, с d_w перебор.
23.11.2019 в 11:46

Ваша Всратость
Ну линтеры никто не отменял, хотя как до меня дошло, создатели языка идут по пути наибольшей безопасности и стараются добиццо единообразия во всем, даже в именовании переменных.

Там вааще много языковых средств нацелено на недопущение и обработку ошибок. Например при матче (местный аналог switch для enum) компилятор будет материца, пока в матче не будут перечислены все возможные варианты, которые принимает переменная.

Впрочем, помимо основных приемов кодинга имеются также методики unsafe Rust (он же Rustonomicon) но мне до них еще доэволюционировать надо.
23.11.2019 в 15:59

Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Сероквелюшка, мне кажется, это разное. Привнести в системное программирование долю здоровой корректности и хороших умолчаний это одно, вдевать линтер в компилятор уже другое.
23.11.2019 в 22:02

Ваша Всратость
2Заболекарь, Ну у меня нет большого экспириенса в части системного программирования и сравнивать не с чем, а в JS, на котором йа пишу за еду, вывод ошибок находицо на уровне "переменная XXX undefined" в консоли браузера, после чего можно развлекацо всеми доступными средствами.

Тут исчо пара нюансов - в жабоскрипте полноценные модули с собственными пространствами имен появились только в новомодном ES6, вышедшем два с половиной года назад, ровно как и полноценные локальные (let/const) переменные, которые видимы только в собственном блоке.

А до того - только var, только хардкор и видимость переменной во всей функции, где ее определили. А наш легасевый поехавшыйжелезнодорожный код славен функцыями на тысячу-другую строк накостыливания одного функционала поверх другого.

Расширенная форма

Редактировать

Подписаться на новые комментарии