Евгений Долганов

+78
с 2016
2 подписчика
23 подписки

5 серия, 33 минута, 30 секунда

Крутое кино, жести немного, глубины хватает

Концовка честная)

"Just a small town girl

Livin' in a lonely wooorld

She took the midnight train going

anywhereee..."

5

Я запускал два экземпляра этой игры, чтобы копировать ходы из одной в другую, тем самым побеждая там 😏

13

я просто процитирую ваш изначальный наезд)

"Как js-разработчик, я не согласен с его кодом. Это говно, а не random."

выше я расписал почему код у автора для показа рандомных картинок в шуточном сайте был не говном, а вполне адекватным решением.

Ключевой момент - это как раз "критические места"

Вот что пишут сами инженеры гугла об этом (по ссылке выше)

For use cases such as hashing, signature generation, and encryption/decryption, ordinary PRNGs are unsuitable. The Web Cryptography API introduces crypto.getRandomValues, a method that returns cryptographically secure random values, at a performance cost.

- хешинг
- сигнатуры
- криптография

Если это показ случайного кристаллика на сайте (что было в статье, собственно), то критиковать автора за не использование random.js, который внутри себя использует crypto.getRandomValues — глупость)

А теперь о важном)
1. Данная статья написана в 2015м году
2. В том же 2015м гугл выпускает обновление своего браузера, где фиксит поведение Math.random

https://v8.dev/blog/math-random

Так что проблемы с неоптимальностью распределения случайных чисел в функции Math.random нет уже больше 6 лет)

Надо задачи бизнеса решать, а не проблемы на ровном месте выдумывать)

Math.random - нормальный инструмент для большинства задач, не связанных с криптографией.

https://github.com/lodash/lodash/blob/master/random.js#L70

В лодаше если что точно такая же реализация)))
lower + Math.floor(Math.random() * (upper - lower + 1))

подставь для нашего примера
lower = 0
upper = length-1

и получишь код автора 🤡

1