Добро пожаловать на Arcom Tech!          
На этом сайте вы можете прочитать о моих текущих и архивных проектах, скачать ПО, прочитать статьи про разработку различных программных решений.
По сути, является хобби-сайтом, все что вы здесь увидите - упражнения для саморазвития в свободное от работы времени.

ТЕКУЩИЙ КРУПНЫЙ ПРОЕКТ: Контроллеры серии ArCom - ARduino COMmander, модели T328 и 2560 - для использования в качестве основного ядра повседневных роботов, проектов автоматизации и систем умного дома.

+++ ПРИЯТНОГО И ПОЛЕЗНОГО ВРЕМЯПРОВОЖДЕНИЯ НА МОЕМ САЙТЕ! +++
Почта: V.Voronin voroninCKservice@yandex.ru

//НОВОСТНАЯ ЛЕНТА САЙТА                                                     

10.09.2021: СТАТЬИ - ПРОСТОЙ AI (Искусственный Интелект) ДЛЯ КОМПЬЮТЕРНЫХ ИГР
  Вот и первая статья на сайте. Она будет посвящена примеру простейшего искусственного интелекта в прототипе несложной игрушки.
Суть игры. Есть два персонажа. Один ("Р") управляется игроком при помощи кнопок на форме, ИИ ("H") - искуственный игрок-конкурент.
Поле игры - таблица TStringgrid - "лес", в котором растут деревья ("Т"), расположение которых каждый раз генерируется. Цель игры - срубить
 больше деревьев в лесу, чем оппонент, или выгнать его из леса, снизив его hp до нуля. Кнопка NEW очищает игровое поле и начинает все заново.

Основная механика игры - проверка находящихся рядом ячеек. Например, при нажатии кнопки R (вправо) - проверяются условия:
  1. Если клетка справа пустая - координата х+1 (персонаж передвигается в правую клетку).
  2. Если в клетке '0' - не происходит ничего (коллизия, стена).
  3. Если справа "дерево" - клетка справа очищается, к счетчику добытых деревьев прибавляется +1.
  4. Если справа ИИ Персонаж, то ему наносится 1 урона (-1 НР).
Теперь - о механике работы ИИ. Алгоритм работы его такой:
  1. Если он видит в радиусе по осям трех клеток искомый объект (дерево чтобы срубить или игрока) - приближаться к объекту. В данном приложении цель "дерево" предпочтительнее цели "игрок".
  2. Если первое условие не выполняется - выбрать случайное направление из четырех и ходить.
Схему "зрения" ИИ можно визуально представить так:

Объект "дерево" находится ближе, и его ценность для ИИ выше, поэтому он пойдет вправо, а на следующей итерации выберет, какое дерево рубить.
в данном случае:

 if (StringGrid1.Cells[x1,y1+1]='T') or (StringGrid1.Cells[x1,y1+1]='P') or (StringGrid1.Cells[x1,y1+2]='T') or (StringGrid1.Cells[x1,y1+2]='P') or (StringGrid1.Cells[x1,y1+3]='T') or (StringGrid1.Cells[x1,y1+3]='P') then sel:=0 else
 if (StringGrid1.Cells[x1,y1-1]='T') or (StringGrid1.Cells[x1,y1-1]='P') or (StringGrid1.Cells[x1,y1-2]='T') or (StringGrid1.Cells[x1,y1-2]='P') or (StringGrid1.Cells[x1,y1-3]='T') or (StringGrid1.Cells[x1,y1-3]='P') then sel:=1 else
 if (StringGrid1.Cells[x1+1,y1]='T') or (StringGrid1.Cells[x1+1,y1]='P') or (StringGrid1.Cells[x1+2,y1]='T') or (StringGrid1.Cells[x1+2,y1]='P') or (StringGrid1.Cells[x1+3,y1]='T') or (StringGrid1.Cells[x1+3,y1]='P') then sel:=2 else
 if (StringGrid1.Cells[x1-1,y1]='T') or (StringGrid1.Cells[x1-1,y1]='P') or (StringGrid1.Cells[x1-2,y1]='T') or (StringGrid1.Cells[x1-2,y1]='P') or (StringGrid1.Cells[x1-3,y1]='T') or (StringGrid1.Cells[x1-3,y1]='P') then sel:=3


проверяет сначала сверху,  потом снизу, потом справа, потом слева, следовательно, сначала "срубит" нижнее "дерево", потом правое.
Для тех, кто заинтересовался, хочет "поиграться" с проектом и посмотреть исходники и щикарный образчик индусокода >

ССЫЛКА >>>    https://disk.yandex.ru/d/VD89QXFUdSYWkQ
09.09.2021: ПРОГРАММЫ - ACALC  <DOWNLOAD>      08.09.2021: ПРОГРАММЫ - RIC3EDIT  <DOWNLOAD>
Инженерный калькулятор, написанный в среде Delphi. К сожалению, исходники были утеряны.
Возможности:
  • Радианы/градусы для тригонометрических операций
  • Логарифмы
  • История расчетов
       Простой редактор текстовых RTF файлов. Поддерживает такие функции, как расширенные редактирование (изменение шрифтов,
цвета текста, выравнивание и прочее форматирование), перенос открытого файла в microsoft word, поиск по тексту с учетом или без регистра, целого слова или его части, построение таблиц в документе.

      Исходники, если нужно для целей обучения (сделано на Delphi7) <<<<<<<<<Download Source>>>>>>>>>