Немного об IT
2 subscribers
6 photos
20 links
Download Telegram
Channel created
Channel photo updated
Установил SSL-сертификат на сайт, можно считать запустил сайт в "минимальной версии": https://initit.ru/
Слегка поправил css для улучшения отображения сайта на мобильных устройствах.
В раздел "Программируем шахматы на php и javascript" добавил третью часть - https://initit.ru/chess_programming/human_make_move
Добавил четвёртую статью из цикла "Программируем шахматы на php и javascript". "Запрос к бекенду и обработка ответа" - https://initit.ru/chess_programming/processing_response.

Как всегда, посмотреть как работает код, можно на демо-странице - https://dev.initit.ru/chess/v004/
Пятая часть "шахматного проекта" давно сделана. Но всё никак не допишу статью с описанием. Работа...
Но осталось до-описать совсем немного, скоро выйдет следующая статья
Пятая часть "шахматного проекта" - Запоминаем состояние игры
В этой части мы добавили в интерфейс строку состояния игры, добавили кнопки для начала новой игры - за белых, и за чёрных. И главное - научили игру сохранять своё состояние.
Опубликовал 6-ую часть "шахматного проекта" - Генератор ходов, фабричный метод и классы фигур

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

Сделал две демо-страницы. Одна - "как обычно" - с кодом из статьи. Для второй в коде убрал смену очерёдности ходов. И в этом демо можно ходить белыми конями хоть сколько раз подряд. Можно съесть все чёрные фигуры, даже короля. Вот демо сумашедших коней
Восьмая статья по программированию шахмат - Компьютер отвечает. Битва коней

Научили компьютер отвечать. Дали ему "случайный искусственный интеллект" 😂 С ним уже можно играть!
Правда пока можно двигать только коней. Зато можно съесть даже короля.

Демо игры, пробуйте, играйте
Очередная статья по программированию шахмат - Пешки, вперёд!

Научили ходить пешек. У них самая сложная "бизнес-логика" ходов. Ходят вперёд, бьют наискосок. Могут превратиться в другую фигуру. Могут иногда взять "на проходе".

Пока пешки могут превратиться только в ферзя. Играйте, пробуйте - демо #9
В статье "Ходы слона, ладьи, ферзя, короля" мы научили двигаться по правилам все остальные фигуры.

Пока король не боится нападений, компьютер случайно выбирает ход, а пешка может превращаться только в ферзя.

Демо #10 игры- играйте всеми фигурами
Опубликовал 11-ую статью по программированию шахмат: Даём королю инстинкт самосохранения. Теперь короля нельзя оставить под атакой. Ещё теперь можно поставить мат или пат.

Пробуйте, играйте - демо #11
Уже почти полностью соблюдаются шахматные правила. Только пешку пока можно превратить только в ферзя. И не действуют правила 50 и 75 ходов по признанию ничьей.
Наконец-то! После месячного перерыва выкладываю очередную статью по программированию шахмат: Пешка может стать не только ферзём

Очередное обновление/дополнение программы происходит всегда быстро. Проблема - оформить это изменение в статью. Основная работа занимает много времени, на выходных есть ещё домашние дела.

А пока - читайте, играйте: https://dev.initit.ru/chess/v012/
Добавил статью Признание ничьи и отмена хода
В ней добавил возможность отмены хода, прокрутки игры назад на любое количество ходов. Ещё добавлено признание ничьи по правилу 50-и ходов и по правилу троекратного повтора позиции.

Играть в текущей версии игры можно по ссылке - https://dev.initit.ru/chess/v013/

В следующей статье добавим чуть-чуть "интеллекта" компьютеру, чтобы он делал не случайные ходы как сейчас, а чуть более рациональные.
Опубликовал следующую часть из цикла "Программируем шахматы на php и javascript":

Грубый перебор ходов, NegaMax

В этой части добавил простейший шахматный ИИ. Он строит полное дерево игры на глубину всего три полухода, и оценивает позиции простейшей оценочной функций, которая учитывает только "стоимость" фигур.

Пробуйте, играйте: https://dev.initit.ru/chess/v014/
Повесил на сайт баннер рекламной сети яндекса, уж простите 🤪
Чтобы сайт приняли в сеть, опубликовал "Политику конфиденциальности", это требование сети.
Встречайте новую часть шахматных публикаций:

Альфа-бета отсечение, сортировка ходов

Алгоритм очень сильно сокращает число оцениваемых позиций. Это позволяет увеличить глубину просмотра на два полухода без увеличения времени на ход.

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

На этот раз я даже следующую часть программы не написал. Были другие важные дела. Плюс ко всему, у меня стал крашится основной SSD-диск на ноутбуке, и в конце концов, я его заменил. Комп чистый, всё нужное програмьё заново устанавливал, настраивал, это та ещё заморочка...

По шахматной программе в следующей части планирую:
1. Усложнить оценочную функцию, добавить туда позиционные факторы. Это конечно сильно снизит скорость перебора и эффективность альфа-бета отсечения. Буду экспериментировать.
2. Сделать "дробную" глубину просмотра
3. Сделать выборочные продления