Я задолбался писать ботов «в стол» и выпустил «Ворди»: безлимитный Wordle с глобальным рейтингом игроков

О всемирном помешательстве я узнал неделю назад. Утро понедельника не предвещало ничего интересного, но внезапно в ленте новостей оказалась заметка о Wordle. Жизнь сразу обрела цель и смысл: «Сейчас я за пару дней выкачу бота для игры!».

Как, думаю, уже понятно, в итоге потребовалось чуть больше пары дней, но замечу, что мои друзья играют в Ворди уже со среды. Почему Ворди? Здесь может быть несколько ответов, но главный, если уж начистоту, конечно, в том, что все нормальные варианты сочетания слов "wordle" и "bot" были уже заняты. Ха-ха, мда. Остальные ответы примерно такого характера: мне нравится звучание, легко запоминается, в слове тоже пять букв.

Я задолбался писать ботов «в стол» и выпустил «Ворди»: безлимитный Wordle с глобальным рейтингом игроков

Кстати, из всех зарегистрированных имён рабочим оказался только один бот. Я сыграл слово дня, сыграл слово из всего словаря, мне выпало слово "акажу" и я поклялся, что в моём боте такая дичи не встретится.

Что ж, теперь в моём словаре для игры 1234 прекрасных слова, одно интереснее другого. Из "Нового частотного словаря русской лексики" я выбрал существительные из пяти букв и получил число слов, близкое к 1234. Скоро оказалось, что там встречаются слова множественного числа, жаргонные и, скажем так, не очень литературные. Их я заменил на названия животных — слова всем известные, но в повседневной жизни употребляемые нечасто (скажем, жираф).

Вскоре пришлось избавиться от буквы "ё": на клавиатуру идеально помещались всего 32 буквы. Несмотря на то, что я очень трепетно отношусь к этой букве и набираю её всякий раз, где это возможно, я принял решение удалить из словаря (игрового) все слова, её содержащие, чтобы избежать разночтений и запутываний. Впрочем, два слова я всё-таки оставил, это "тезка" и "ликер".

Чтобы не было путаницы, стоит объяснить, что ещё, конечно же, используется словарь всех известных слов из пяти букв, его размер чуть больше 3,5 тысяч. Уже после того как бот был полностью отлажен, я решил добавить пользовательский словарь, чтобы все вводимые слова сохранялись. При повторном употребление (вводе) увеличивается индекс использования, и я раз в несколько дней смогу добавлять наиоболее востребованные слова в основной словарь, если они действительно существуют.

Я задолбался писать ботов «в стол» и выпустил «Ворди»: безлимитный Wordle с глобальным рейтингом игроков

Если вам понравилось слово, которое вы отгадывали, вы можете переслать другу сообщение с цветными плитками (стандартный вариант), а если ваш результат вам не нравится, вы можете просто передать другу номер. Эти цифры номера вводятся обычным образом как буквы слова, бот принимает любой номер до 1234 включительно. Вы и сами можете ввести любой номер из головы. Чем меньше число, тем чаще употребляется слово, это совсем не значит, что оно будет простым для отгадывания: взять хотя бы слова 1 и 2!

Ну, не буду больше затягивать, но добавлю ещё пару слов о разработке. Из настолько объёмных (функциональных) ботов этот у меня — первый, в котором отсутствует привычное меню на кнопках. Я не люблю обычные кнопки в Телеграмме и по возможности всё реализовываю на подстрочных (inline), но здесь я решил обойтись только командами. А чтобы было проще, релевантная команда выводится в конце сообщения. Интересно будет узнать, насколько такое решение удобно и хорошо смотрится.

Начать игру можно здесь. Я также добавил дублёра, если основной бот не справится с нагрузкой: Телеграмм устанавливает ограничение на количество отправляемых ботом сообщений в минуту. Если такое случится, бот сообщит адрес дублёра. База данных у них одна, прогресс сохраняется.

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

Что ж, всего хорошего и приятной игры!

7
12 комментариев