Pull to refresh

Новогодний розыгрыш

Reading time2 min
Views14K

Понимаете, каждый год 31 декабря мы с друзьями разыгрываем подарки. Это у нас такая традиция…

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

Подарков на всех может не хватить, поэтому, чтобы никому не было обидно, однажды мы решили, что каждый захватит по одному «общественному» подарку. И на месте решим, кто кому и что дарит.

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

Каждый раз я садился и писал на коленке скрипт для подбора случайных пар дарителей и получателей. И каждый раз он, скрипт, терялся на следующий год. Но при этом появлялся новый, более совершенный. Он становился сложнее, появлялись обои, снежинки и прочая красота.

И вот однажды дошли руки увековечить накопленный опыт в области «новогоднего розыгрыша» в виде html страницы, которой я и хочу с вами поделиться: github.com/simbajoe/newyear.

В самой странице нет почти ничего необычного, html + javascript. Есть английская версия. Создавалась она пару вечеров, поэтому не ругайте особо. Для нахождения пар используется рандомизированный поиск в глубину. Есть проблема со временем выполнения поиска при большом количестве ограничений. Если у кого-то найдутся добрые руки, буду рад коммиту.

Чтобы страница завелась, просто скачайте репозиторий и запустите index.html.

Совсем немного времени осталось до Нового Года, католическое Рождество наступает, православное разогревается, а старый новый год забивает трубку. Надеюсь, что кому-то данный новогодний сайт пригодится.

Всех с наступающим!

Tags:
Hubs:
+13
Comments13

Articles