Pull to refresh
8
Aleksei@arehspb

User

Send message

С этими детьми мы уже изучили CSS и HTML, пришло самое время изучать "работу над архитектурой". Для взрослого JavaScript они ещё слишком малы. А стек отлично подходит. К тому же, этот урок в конце концов вылился в большее. Для следующих классов я даже распределил роли и распечатал бейджики. Разделил детей на команды.

Понимаю вашу иронию. Конкурировать планирую не лобовой атакой, а гибкостью. У меня есть ползунок сложности ), карандашные заметки и сид которым можно делиться в чате. Много всяких мелочей, я начинал проект именно как что-то для себя, а я годами играл в эту игру и точно знаю чего нет других приложениях.

Спасибо. Думаю в этом проекте ещё есть парочка интересных решений которыми здорово будет поделиться с такими же новичками как я. Обязательно напишу об этом статью. К тому же я перевёл своё приложение на 36 языков включая Ассемблер, Яваскрипт и Эльфийский, для этого тоже пришлось провести занимательное исследование)

Честно говоря, где-то на тысячной строчке кода, примерно на моменте когда я писал логику обхода мёртвых паттернов, я стал смотреть на этот проект несколько по-другому. Из простого он превратился в надежду хоть немного поправить финансовое положение. Признаюсь, чувствую себя виноватым за такой меркантильный подход, но я не без причин в этом году отказался от путешествий по Азии.

Прочитал удалённый кусочек вашего комментария на почте, думаю разумно будет дать больше пояснений.
609 492 049 920 - это математический предел уникальных и правильных сеток которые можно сгенерировать из одной базовой не нарушая при этом правила Судоку. Операция остатка от деления (A % B) работает как кольцевой счетчик, как циферблат. В результате выражение seedBigInt % 609492049920 всегда выдаст нам число от 0 до 609492049919. Получив это итоговое число PermutationsReader начинает его распаковывать в обратном порядке:
делит N на 362880 (9!, используются системы счисления перестановок, 362880 для цифр и 6 для блоков),
берет остаток и понимает: цифры меняем вот по такой схеме,
само число N уменьшается, мы отрезали от него часть данных,
дальше делит остаток на 6 и понимает: строки меняем так,
и так до тех пор пока от огромного не останется ноль а сетка не будет полностью перемешана уникальным образом.
прочитал данные -> сдвинулся -> прочитал следующие -> сдвинулся
Таким образом достигается жесткая биекция.

К сожалению пока нигде. Хочется сделать apk для андроид, но каникулы подходят к концу. В понедельник на работу, школьные чаты уже о себе напоминают и моё "приключение" вот-вот закончится. Теперь любая работа над этим проектом будет продвигаться гораздо медленнее. Вероятно через какое-то неопределённое время я смогу поделиться результатами.

Блоки с явным указанием 3! и 9! выглядят страшновато, тем более что это всегда факториал от длины массива. Изящнее был бы какой-нибудь класс-помощник которому можно было передать N и запрашивать перестановки, при этом он сам бы внутри менял N.

"Don't Repeat Yourself" ). Вы правы, так будет почище.

Программа поддерживает изменение сложности "на лету" (ползунок на скриншоте). От 5 до 0 отображаемых цифр подсказок, и от 0 до 4 скрываемых/отображаемых знака больше меньше. То какие цифры и знаки будут скрываться и в какой последовательности, определяет сид, то есть для каждого сида будет всегда своя одинаковая уникальная последовательность отображения подсказок.

Information

Rating
Does not participate
Location
Бангкок, Таиланд, Таиланд
Date of birth
Registered
Activity

Specialization

Specialist
From 2,500 $
Английский язык
Разработка программного обеспечения
Алгоритмы