Розумієте, щороку 31 грудня ми з друзями розігруємо подарунки. Це у нас така традиція...
Не завжди заздалегідь відомо, хто прийде на новорічну вечірку, скільки буде гостей і ким вони будуть. У колі моїх друзів ця ситуація повторювалася з року в рік.
Подарунків на всіх може не вистачити, тому, щоб нікому не було прикро, одного разу ми вирішили, що кожен захопить по одному «громадському» подарунку. І на місці вирішимо, хто кому і що дарує.
Завжди перебували ті, хто приносив як сувенір дзеркальце, губну помаду, шахи. Тобто, подарунки, із заздалегідь обмеженою безліччю можливих одержувачів. Пари, які прийшли на свято, не хотіли дарувати даний подарунок один одному, оскільки заздалегідь знали, що у них заготовлено.
Щоразу я сідав і писав на коліні скрипт для підбору випадкових пар дарувальників і одержувачів. І кожен раз він, скрипт, губився на наступний рік. Але при цьому з'являвся новий, більш досконалий. Він ставав складнішим, з'являлися шпалери, сніжинки та інша краса.
І ось одного разу дійшли руки увічнити накопичений досвід в області «новорічного розіграшу» у вигляді html сторінки, якою я і хочу з вами поділитися: github.com/simbajoe/newyear.
У самій сторінці немає майже нічого незвичайного, html + javascript. Є англійська версія. Створювалася вона пару вечорів, тому не лайте особливо. Для знаходження пар використовується рандомізований пошук в глибину. Є проблема з часом виконання пошуку при великій кількості обмежень. Якщо у когось знайдуться добрі руки, буду радий коміту.
Щоб завелася сторінка, просто завантажте сховище і запустіть index.html.
Зовсім небагато часу залишилося до Нового Року, католицьке Різдво настає, православне розігрівається, а старий новий рік забиває трубку. Сподіваюся, що комусь даний новорічний сайт стане в нагоді.
Всіх з наступаючим!