Константин Nines_OneL
Был на сайте: 03.06.2024 16:44

Константин Nines_OneL ninesonel

Паспорт не верифицирован
Работал по Безопасной сделке

Крестики-Нолики 5 в ряд  

  • 16
  • Опубликовано: 2021-08-24
Язык программирования, который требовался – C++. Использовалась библиотека raylib + raygui, чтобы получить красивый интерфейс.
Также были максимально расписаны блоки в коде, чтобы заказчица смогла защитить разработку. Помимо этого, были сделаны блок-схемы на самого бота и описание паттернов и модулей⚙

Скриншоты работы, описание модулей и паттернов приложу к посту.

Кратко о том, как работает бот:
1) Ищет все потенциальные ходы. Ход считается потенциальным, если в квадратной области 5х5 вокруг него есть непустая клетка
2) Для каждого потенциального хода ищет самый весомый шаблон по каждому из направлений: горизонталь (вправо\влево), вертикаль (вверх\вниз), основная диагональ (влево и вверх\вправо и вниз), побочная диагональ (вправо и вверх\влево и вниз). Шаблоны заранее созданы и взвешены
3) Суммирует самые весомые шаблоны по каждому из направлений. Если шаблоны есть в 2 и более направлениях, вес удваивается (вилка)
4) Ищет самый весомый ход
Шаблоны(паттерны) проектирования:
Состояние - каждая клетка игрового поля - это состояние (крестик\нолик\пусто). Так же состояния используются для управления игровым циклом (Context::Scene)
Неполноценный синглтон - структура Context создается один раз и используется на протяжении всей работы программы
Притянутая за уши стратегия - поведения бота зависит от того, за какую сторону он играет (Bot::move(board, side))
Притянутый за уши фасад - поиск победителя и вычисление хода бота происходят по вызову одной функции.
Комментариев нет
оставить комментарий могут только авторизованные пользователи
Другие работы автора:
ПРОГРАММИРОВАНИЕ

ПРОГРАММИРОВАНИЕ 1) Разработка и поддержка Telegram ботов и скриптов. К каждому человеку подход индивидуальный. Telegram бот – самое быстроразвивающееся направление на территории СНГ. Большинство людей, чтобы оптимизировать свой бизнес, обращаются к людям, которые п…

ЗАКАЗАТЬ РАЗРАБОТКУ

ЗАКАЗАТЬ РАЗРАБОТКУ Наши контакты: TG: https://t.me/Nines_OneL WhatsApp: 89012835264 Сайт: https://vk.com/ninesonel ВК: https://vk.com/ninesonel

3D-ВИЗУАЛИЗАЦИЯ И -МОДЕЛЛИНГ

3D-ВИЗУАЛИЗАЦИЯ И -МОДЕЛЛИНГ Основные работы, которые мною выполняются – создание фотореалистичных помещений с помощью 3Ds MAX и Corona Render. В данной группе будут размещены работы, которые на протяжении 3х лет наполняли мое портфолио и опыт. Буду рад разработать проект с абсо…

Игра для сайта “2048”

Игра для сайта “2048” У заказчика имеется сайт, в оформление популярной игры – “Counter Strike 2”. Дизайн страницы, где происходит игра – должен был соответствовать общей задумки. Стек выбрали следующий: Gulp и Java Script. Было принято решение реализовывать с нашей стор…

Проект на питоне + GUI на PyQt

Проект на питоне + GUI на PyQt Программа относится к Объектно-ориентированному программированию Сама задача, что нужно сделать: На столе лежат S (3) стопок книг многотомного издания из N (30) томов. Распределение томов по стопкам и порядку номеров томов случайное (генерируется из…

Крестики-Нолики 5 в ряд

Крестики-Нолики 5 в ряд Язык программирования, который требовался – C++. Использовалась библиотека raylib + raygui, чтобы получить красивый интерфейс. Также были максимально расписаны блоки в коде, чтобы заказчица смогла защитить разработку. Помимо этого, были сделаны блок-…

“Своя Игра” на ЯП Python

“Своя Игра” на ЯП Python Проект “Своя Игра” – относилась к Дипломному проекту. У нас была полная свобода в выборе Языка программирования, библиотек и фреймворков. Также требовалось предоставить подробные комментарии в коде и пояснительную записку (с ней можете ознакомиться в…

Крестики-Нолики 5 в ряд

Крестики-Нолики 5 в ряд Язык программирования, который требовался – C++. Использовалась библиотека raylib + raygui, чтобы получить красивый интерфейс. Также были максимально расписаны блоки в коде, чтобы заказчица смогла защитить разработку. Помимо этого, были сделаны блок-…