Установил SSL-сертификат на сайт, можно считать запустил сайт в "минимальной версии": https://initit.ru/
В раздел "Программируем шахматы на php и javascript" сегодня добавил вторую часть - "Показываем фигуры" - https://initit.ru/chess_programming/show_figures
Немного про IT
Показываем фигуры | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Показываем фигуры
Слегка поправил 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/
Как всегда, посмотреть как работает код, можно на демо-странице - https://dev.initit.ru/chess/v004/
Немного про IT
Запрос к бекенду и обработка ответа | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Делаем запрос к бекенду и обрабатываем ответ
Пятая часть "шахматного проекта" давно сделана. Но всё никак не допишу статью с описанием. Работа...
Но осталось до-описать совсем немного, скоро выйдет следующая статья
Но осталось до-описать совсем немного, скоро выйдет следующая статья
Пятая часть "шахматного проекта" - Запоминаем состояние игры
В этой части мы добавили в интерфейс строку состояния игры, добавили кнопки для начала новой игры - за белых, и за чёрных. И главное - научили игру сохранять своё состояние.
В этой части мы добавили в интерфейс строку состояния игры, добавили кнопки для начала новой игры - за белых, и за чёрных. И главное - научили игру сохранять своё состояние.
Немного про IT
Запоминаем состояние игры | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Запоминаем состояние игры. Добавляем кнопки начала игры.
Опубликовал 6-ую часть "шахматного проекта" - Генератор ходов, фабричный метод и классы фигур
Там мы:
- сделали перекодировку фигур
- написали "скелет" генератора перемещений (ходов)
- сделали общий класс шахматной фигуры и унаследовали от него шесть классов конкретных видов фигур - короля, ферзя, ладьи, слона, коня и пешки.
- реализовали шаблон проектирования "фабричный метод" для создания класса конкретного вида фигуры в генераторе перемещений
Там мы:
- сделали перекодировку фигур
- написали "скелет" генератора перемещений (ходов)
- сделали общий класс шахматной фигуры и унаследовали от него шесть классов конкретных видов фигур - короля, ферзя, ладьи, слона, коня и пешки.
- реализовали шаблон проектирования "фабричный метод" для создания класса конкретного вида фигуры в генераторе перемещений
Немного про IT
Генератор ходов, фабричный метод и классы фигур | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Создаём генератор ходов и классы фигур с помощью порождающего паттерна проектирования фабричный метод
Седьмая шахматная статья - на сайте. В ней мы сделали общую логику перемещения фигур, и написали правила хода для коня. И ещё важное изменение - фигуры теперь можно реально перемещать, т.е. при перемещении меняется состояние игры и записывается в хранилище.
Сделал две демо-страницы. Одна - "как обычно" - с кодом из статьи. Для второй в коде убрал смену очерёдности ходов. И в этом демо можно ходить белыми конями хоть сколько раз подряд. Можно съесть все чёрные фигуры, даже короля. Вот демо сумашедших коней
Сделал две демо-страницы. Одна - "как обычно" - с кодом из статьи. Для второй в коде убрал смену очерёдности ходов. И в этом демо можно ходить белыми конями хоть сколько раз подряд. Можно съесть все чёрные фигуры, даже короля. Вот демо сумашедших коней
Восьмая статья по программированию шахмат - Компьютер отвечает. Битва коней
Научили компьютер отвечать. Дали ему "случайный искусственный интеллект" 😂 С ним уже можно играть!
Правда пока можно двигать только коней. Зато можно съесть даже короля.
Демо игры, пробуйте, играйте
Научили компьютер отвечать. Дали ему "случайный искусственный интеллект" 😂 С ним уже можно играть!
Правда пока можно двигать только коней. Зато можно съесть даже короля.
Демо игры, пробуйте, играйте
Очередная статья по программированию шахмат - Пешки, вперёд!
Научили ходить пешек. У них самая сложная "бизнес-логика" ходов. Ходят вперёд, бьют наискосок. Могут превратиться в другую фигуру. Могут иногда взять "на проходе".
Пока пешки могут превратиться только в ферзя. Играйте, пробуйте - демо #9
Научили ходить пешек. У них самая сложная "бизнес-логика" ходов. Ходят вперёд, бьют наискосок. Могут превратиться в другую фигуру. Могут иногда взять "на проходе".
Пока пешки могут превратиться только в ферзя. Играйте, пробуйте - демо #9
В статье "Ходы слона, ладьи, ферзя, короля" мы научили двигаться по правилам все остальные фигуры.
Пока король не боится нападений, компьютер случайно выбирает ход, а пешка может превращаться только в ферзя.
Демо #10 игры- играйте всеми фигурами
Пока король не боится нападений, компьютер случайно выбирает ход, а пешка может превращаться только в ферзя.
Демо #10 игры- играйте всеми фигурами
Опубликовал 11-ую статью по программированию шахмат: Даём королю инстинкт самосохранения. Теперь короля нельзя оставить под атакой. Ещё теперь можно поставить мат или пат.
Пробуйте, играйте - демо #11
Уже почти полностью соблюдаются шахматные правила. Только пешку пока можно превратить только в ферзя. И не действуют правила 50 и 75 ходов по признанию ничьей.
Пробуйте, играйте - демо #11
Уже почти полностью соблюдаются шахматные правила. Только пешку пока можно превратить только в ферзя. И не действуют правила 50 и 75 ходов по признанию ничьей.
Немного про IT
Даём королю инстинкт самосохранения | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Даём королю инстинкт самосохранения, учим избегать угрозы. Определяем мат, пат.
Наконец-то! После месячного перерыва выкладываю очередную статью по программированию шахмат: Пешка может стать не только ферзём
Очередное обновление/дополнение программы происходит всегда быстро. Проблема - оформить это изменение в статью. Основная работа занимает много времени, на выходных есть ещё домашние дела.
А пока - читайте, играйте: https://dev.initit.ru/chess/v012/
Очередное обновление/дополнение программы происходит всегда быстро. Проблема - оформить это изменение в статью. Основная работа занимает много времени, на выходных есть ещё домашние дела.
А пока - читайте, играйте: https://dev.initit.ru/chess/v012/
Добавил статью Признание ничьи и отмена хода
В ней добавил возможность отмены хода, прокрутки игры назад на любое количество ходов. Ещё добавлено признание ничьи по правилу 50-и ходов и по правилу троекратного повтора позиции.
Играть в текущей версии игры можно по ссылке - https://dev.initit.ru/chess/v013/
В следующей статье добавим чуть-чуть "интеллекта" компьютеру, чтобы он делал не случайные ходы как сейчас, а чуть более рациональные.
В ней добавил возможность отмены хода, прокрутки игры назад на любое количество ходов. Ещё добавлено признание ничьи по правилу 50-и ходов и по правилу троекратного повтора позиции.
Играть в текущей версии игры можно по ссылке - https://dev.initit.ru/chess/v013/
В следующей статье добавим чуть-чуть "интеллекта" компьютеру, чтобы он делал не случайные ходы как сейчас, а чуть более рациональные.
Немного про IT
Признание ничьи и отмена хода | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Признание ничьи по правилу 50 ходов и по правилу троекратного повторения позиции. Отмена хода. Возможность
Опубликовал следующую часть из цикла "Программируем шахматы на php и javascript":
Грубый перебор ходов, NegaMax
В этой части добавил простейший шахматный ИИ. Он строит полное дерево игры на глубину всего три полухода, и оценивает позиции простейшей оценочной функций, которая учитывает только "стоимость" фигур.
Пробуйте, играйте: https://dev.initit.ru/chess/v014/
Грубый перебор ходов, NegaMax
В этой части добавил простейший шахматный ИИ. Он строит полное дерево игры на глубину всего три полухода, и оценивает позиции простейшей оценочной функций, которая учитывает только "стоимость" фигур.
Пробуйте, играйте: https://dev.initit.ru/chess/v014/
Немного про IT
Грубый перебор ходов, NegaMax | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Грубый перебор вариантов, простая оценочная функция. Алгоритмы NegaMax и MiniMax, рекурсия. Компьютер уже не зевает и избегает простейших матов
Повесил на сайт баннер рекламной сети яндекса, уж простите 🤪
Чтобы сайт приняли в сеть, опубликовал "Политику конфиденциальности", это требование сети.
Чтобы сайт приняли в сеть, опубликовал "Политику конфиденциальности", это требование сети.
Встречайте новую часть шахматных публикаций:
Альфа-бета отсечение, сортировка ходов
Алгоритм очень сильно сокращает число оцениваемых позиций. Это позволяет увеличить глубину просмотра на два полухода без увеличения времени на ход.
В демо игры я увеличил глубину не на 2 полухода, а на один. Компьютер просматривает ходы на 4 полухода вперёд, но зато за среднее время всего 2 секунды.
Альфа-бета отсечение, сортировка ходов
Алгоритм очень сильно сокращает число оцениваемых позиций. Это позволяет увеличить глубину просмотра на два полухода без увеличения времени на ход.
В демо игры я увеличил глубину не на 2 полухода, а на один. Компьютер просматривает ходы на 4 полухода вперёд, но зато за среднее время всего 2 секунды.
Немного про IT
Альфа-бета отсечение, сортировка ходов | Шахматы на php и javascript
Учимся программировать шахматы на php и javascript: Альфа-бета отсечение, объяснение алгоритма альфа-бета отсечения, сортировка ходов, существенное сокращение перебора. Можно играть уже с глубиной 5 полуходов
Давно не писал. Обычно я быстро, в течении дня, пишу следующую часть шахматной программы, а потом долго пишу статью - описание этого добавленного кода для сайта. Учтите, что у меня ещё основная работа есть, и сайтом я занимаюсь редко, в основном в выходные, да и то не в каждые.
На этот раз я даже следующую часть программы не написал. Были другие важные дела. Плюс ко всему, у меня стал крашится основной SSD-диск на ноутбуке, и в конце концов, я его заменил. Комп чистый, всё нужное програмьё заново устанавливал, настраивал, это та ещё заморочка...
По шахматной программе в следующей части планирую:
1. Усложнить оценочную функцию, добавить туда позиционные факторы. Это конечно сильно снизит скорость перебора и эффективность альфа-бета отсечения. Буду экспериментировать.
2. Сделать "дробную" глубину просмотра
3. Сделать выборочные продления
На этот раз я даже следующую часть программы не написал. Были другие важные дела. Плюс ко всему, у меня стал крашится основной SSD-диск на ноутбуке, и в конце концов, я его заменил. Комп чистый, всё нужное програмьё заново устанавливал, настраивал, это та ещё заморочка...
По шахматной программе в следующей части планирую:
1. Усложнить оценочную функцию, добавить туда позиционные факторы. Это конечно сильно снизит скорость перебора и эффективность альфа-бета отсечения. Буду экспериментировать.
2. Сделать "дробную" глубину просмотра
3. Сделать выборочные продления
