Давайте напишем шахматную программу! "С нуля", без каких-либо готовых библиотек.
Играть можно будет в браузере. Клиентскую часть на javascript сделаем "лёгкой", т.е. она будет содержать только простейшую логику, нужную для отображения игры, и обмена данными с серверной частью. Будем использовать "чистый" javascript, без каких-то библиотек типа jquery. Серверная часть будет на php.
Эта "затея" стартует как учебный проект, без готового кода. Сначала сделаем простейшую версию "классических" шахмат, постепенно дополняя её. Сейчас нет цели написать быстрый алгоритм, играющий на гроссмейстерском уровне. Мы напишем программу, с которой можно поиграть, и в процессе затронем некоторые аспекты программирования.
Поехали!
Содержание
Часть 1. Шахматные правила
- Рисуем доску
- Показываем фигуры
- Человек делает ход
- Запрос к бекенду и обработка ответа
- Запоминаем состояние игры
- Генератор ходов, фабричный метод и классы фигур
- Ход конём. Учим фигуры двигаться
- Компьютер отвечает. Битва коней
- Пешки, вперёд!
- Ходы слона, ладьи, ферзя, короля
- Даём королю инстинкт самосохранения
- Пешка может стать не только ферзём
- Признание ничьи и отмена хода
Часть 2. Шахматный "ИИ"
- Грубый перебор ходов, NegaMax
- Альфа-бета отсечение, сортировка ходов
- Выборочные продления, игровые эвристики
Часть 3. Оптимизация, улучшения
… Продолжение следует …
Хотите узнавать о публикации новых этапов разработки шахматной программы? Подпишитесь на телеграмм-канал @simple_about_it