Комментарии 30
Плюс от меня чисто за старание и подход. Теперь надо продолжать! Есть куда улучшаться.
Спасибо за комментарий, понимаю, что проект не финальный, поэтому если есть идеи по улучшению, буду рад их услышать, чтобы в будущем проект стал еще лучше
Что на КПДВ, что в последней картинке - F5 почему в тумане? её же пешка бьёт?
Вы верно подметили нюанс работы "тумана войны" для пешки. В проекте она реализована, как возможно следующего хода, то есть у пешки это два-три правила: 1 - Зона постоянной видимости перед собой 1 или 2 клетки. 2 - Зона условной видимости (клетки по диагоналям), они подсвечиваются, как возможные ходы только при наличии там вражеской фигуры, т. к. без нее туда хода нет. 3 - Взятие на проход, подсвечивает пустую клетку подсказывая, что можно взять на проход вражескую пешку
Поэтому на фотографиях пешка не видит F5, т.к. сейчас она не может туда пройти, потому что клетка пуста срабатывает 2 правило
Интересное решение. Но я бы сделал иначе: если взятие возможно (без разницы, обычное взятие или на проходе), то помечать туманом, а если невозможно — рисовать пустое поле. Смысл в том, что пешка «знает», когда поле пусто, это знание логичней изобразить без тумана.
не может туда пройти, потому что клетка пуста
То есть это однозначно устанавливается логически), следовательно туман необязателен
А так да, всё здорово, спасибо за статью)
Наиболее логично для пешки делать без всяких 'нюансов": открывать поле по диагонали, куда она потенциально может бить, т.к. даже если поле пустое, и по факту пешка не может сделать туда свой ход, то исходя из вашей логики тумана все равно будет понятно, что поле пустое, так зачем же скрывать его? Кроме того, из-за принятого вами подхода с проходной пешкой получается совершенно нелогичным то, что игрок может сделать вывод о том, что где-то за две клетки от его пешки существует проходная вражеская.
Ну и при таком подходе возникают аналогичные "нюансы" с королем, который не будет видеть, что находящуюся на соседней клетке фигуру противника, если она защищена. Зачем эти усложнения?
В чем отличие от chess.com/ru/terms/krigshpil?
А что гроссы говорят за такой вид шахмат?
Как преподаватель шахмат и одновременно разработчик онлайн платформы для них же не понимаю зачем такие сложности? На js есть готовый движок который можно прикрутить легко. Реализовать доп. фигуры для того чтобы спрятать поля - можно ещё быстрее в наше время. У меня например сделано +3 фигуры каждого цвета и они могут полностью перекрывать поле. Реализация ходов - проще некуда. chess.js никто не отменял.
Так то неплохо, но изобретение велосипеда. Вайбкодингом Подобный сайт поднимается за день, а то и быстрее.
Без обид. Оценивать не буду ни в какую сторону. Но правда - можно сделать проще и быстрее со скинами и разными досками...
Ниже пример доски...
Туман войны в шахматах - это прям очень забавная идея. Обычно эти режимы живут где-то в настолках или RTS, а тут ты реально сидишь и внезапно понимаешь, что банально не помнишь, где там у соперника конь пропал. Такое ощущение, как будто шахматы превратились в смесь с морским боем
Идея крутая, сам про шахматы с туманом думал)
Решил сыграть, но после e4-e5 странная ситуация (как самый простой пример), по идеи пешка должна видеть и вперёд на свои ходы, чтобы понимать их возможность, так и диагонали, чтобы понимать возможность срубить, так что по надо продумать "зрение пешки". +Добавить страницу с описанием правил игры.
P.s. пожелание по статье - скрывайте длинный код под спойлерами, мне, честно говоря, была интересна только идея, а не код, пришлось долго листать)

Рад, что идея с шахматами в тумане понравилась, насчёт зрения пешки, в текущей логике пешка видит только клетки, на которые может сходить в данный момент (вперёд, если клетка свободна, или по диагонали, если там противник), но думаю можно поменять логику.
Страница с правилами согласен, добавлю в ближайшее время. Еще в статьи вроде есть спойлеры (пишу вроде, т.к. первй раз их использую в статье). Спасибо за комментрарий
добавьте ещё и одновременный ход
Туман с начальной стандартной расстановкой даже для продвинутого любителя шахмат проблем не составляет -- вообще без доски возможно играть все дебюты и ходы известны. Вся доска в памяти. В случайных шахматах Фишера это возможно будет дополнительный сложностью, но не более того. Реально применимы скорее всего туманы в четверных шахматах, где каждый сам за себя.
Понял, что меня триггерит в php: это одновременно и шаблонизатор, и эндпоинт для данных.
Вместо чистого выполнения логики либо на сервер, либо на клиенте, мы клиентом запрашиваем файл с сервера, в который php вставляет генерируемые вставки, и одновременно внутри этого файла лежит js, который может для обновления/сохранения сходить на этот же сервер, но запросить другой урл, чтобы получить те же самые данные.
В итоге нельзя разнести статику и эндпоинты данных, мы всегда вынуждены процессить php для того, чтобы отдать базовую страничку, плюс мы делаем немного двойную работу — один раз выдавая данные в html, второй в json.
Есть и плюсы, конечно, это server side rendering.
Где-то я это уже видел, не помню где. Вы это уже выкладывали в сеть?
А можно к ней прикрутить в качестве оппонента ИИ с настраиваемым уровнем игры?

Создаём шахматы с «туманом войны» на JavaScript: от идеи до работающего прототипа