Найти в Дзене

От пешки до ферзя

От пешки до ферзя 🛍 Не так давно я решил стать гамбитным местером матов. Учусь играть в шахматы с целью дойти до 3к рейтинга на lichess.org, сейчас на этапе "как не зевать фигуры". Но основной мой интерес то не шахматы, а разработка. Lichess это полностью бесплатный сервис с открытым исходным кодом, преимущественно написанный на Scala. Написать приложение для игры в шахматы такого уровня, которое будет поддерживать >100к игроков и >40к партий одновременно, с доступностью на всех типах устройств крайне непростая инженерная и алгоритмическая задача. И вот мне стало интересно, насколько же она не простая 🧐 Писать "убийцу" популярных шахматных сервисов я не собираюсь (пока), а вот разобраться как построить ядро такого приложения задача посильная. Меня интересуют логические вызовы такой разработки, ведь это 6 уникальных фигур со своими особенностями, плюс правила игры, другие ограничения и условности. Вывод: научить фигуры хотя бы правильно ходить умозатратно. Но я попытался с ней спра

От пешки до ферзя 🛍

Не так давно я решил стать гамбитным местером матов. Учусь играть в шахматы с целью дойти до 3к рейтинга на lichess.org, сейчас на этапе "как не зевать фигуры".

Но основной мой интерес то не шахматы, а разработка. Lichess это полностью бесплатный сервис с открытым исходным кодом, преимущественно написанный на Scala.

Написать приложение для игры в шахматы такого уровня, которое будет поддерживать >100к игроков и >40к партий одновременно, с доступностью на всех типах устройств крайне непростая инженерная и алгоритмическая задача. И вот мне стало интересно, насколько же она не простая 🧐

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

Вывод: научить фигуры хотя бы правильно ходить умозатратно. Но я попытался с ней справиться.

Разработал такой сервис на Java, с простеньким интерфейсом (генерировал через ChatGPT), не самой умной и оптимизированной, но работающей! логикой фигур. Моя игра соблюдает все правила, кроме: превращение пешки, пат и еще парочки штук.

Сейчас это общее приложение, в котором и ядро, и API. Для MVP уже неплохо, но хорошо бы логику игры вынести в отдельное ядро и сделать из этого библиотеку, собственно, чем я сейчас и занимаюсь, параллельно описывая процесс в статье у себя на Хабр. Постараюсь скоро закончить и довести до ума.

Ссылка на репо -> MiniChess, предлагайте свои идеи 🤯

Немыкин.Продакшн