Тренируем искусственный интеллект

18.08.17

Задачи пользователя - Игры

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

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Vindinium (v.1.0):
.epf 7,81Kb ver:1.0
4 Скачать бесплатно

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

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

На сайте есть инструкция как играть и писать. Также есть много примеров ботов на гитхабе на других языках программирования.

Начнем. Сначала вам необходимо создать героя, если есть желание можете зарегистрироваться, чтобы ваш ник остался вашим навсегда. Регистрация тут. После этого вам выдадут ключ, с помощью которого вы сможете играть.

Для начала игры необходимо отправить запрос на сервер, с json содержимым.  Если это тренировка то в параметрах передается ключ, карта и количество ходов. Если режим - арена тогда карта выбирается рандомно, и количество ходов равно 1200 по умолчанию.

 Пример кода:

Функция ПолучитьНовоеСостояниеИгры()
   
   СтруктураПараметров = Новый Структура;
   
   Если Режим = "training" Тогда
	   СтруктураПараметров.Вставить("key", Ключ);
	   СтруктураПараметров.Вставить("turns", КоличествоХодов);
	   СтруктураПараметров.Вставить("map", "m1");
	   АдресСервиса = "/api/training";
   Иначе	
	   СтруктураПараметров.Вставить("key", Ключ);
	   АдресСервиса = "/api/arena";
   КонецЕсли;	

   Возврат ОтправитьJSONЗапрос(СтруктураПараметров,АдресСервиса);
   	
КонецФункции

Функция ОтправитьJSONЗапрос(СтруктураПараметров,АдресСервиса)
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " ", Истина);  
	ЗаписьJSON.УстановитьСтроку(ПараметрыJSON); 
	ЗаписатьJSON(ЗаписьJSON, СтруктураПараметров);
	СтрокаJSON = ЗаписьJSON.Закрыть();
	
	Соединение = Новый HTTPСоединение(АдресСервера);
	HTTPЗапрос = Новый HTTPЗапрос(АдресСервиса); 
	
	HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json; charset=utf-8");
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
	HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);   
	Если HTTPОтвет.КодСостояния = 200 Тогда
		ЧтениеJSON = Новый ЧтениеJSON();
		ЧтениеJSON .УстановитьСтроку(HTTPОтвет.ПолучитьТелоКакСтроку());
		Возврат ПрочитатьJSON(ЧтениеJSON , Ложь);
	Иначе	
		Возврат Неопределено;
	КонецЕсли;	
	
КонецФункции	

 В ответ придет json ответ с параметрами игры. Опишу основные параметры:

  • game - параметры игры.
    • heroes - параметры других игроков на поле боя;
    • board - параметры игрового поля;
    • hero - параметры вашего героя на поле боя;
  • viewUrl - ссылка где можно наблюдать за игрой
  • playUrl - ссылка для дальнейших действий над вашим героем

В параметре board приходит строка, которая описывает карту. Строку необходимо разделить на количество игровых клеток и выйдет что-то на подобии этого:

 Пример карты

######$-    $-############$-    $-######
######        ##        ##        ######
####[]    ####            ####    []####
##      ####  ##        ##  ####      ##
####            $-    $-            ####
##########  @1            @4  ##########
############  ####    ####  ############
$-##$-        ############        $-##$-
  $-      $-################$-      $-  
        ########################        
        ########################        
  $-      $-################$-      $-  
$-##$-        ############        $-##$-
############  ####    ####  ############
##########  @2            @3  ##########
####            $-    $-            ####
##      ####  ##        ##  ####      ##
####[]    ####            ####    []####
######        ##        ##        ######
######$-    $-############$-    $-######

где :

"##" - непроходимый лес
"@1" - герой номер 1
"[]" - таверна(для восстановления жизней)
"$-" - Золотая шахта(ничья)
"$1" - Золотая шахта захваченная героем №1

Проанализировав карту, делаем выводы куда двигаться нашему герою. Используя playUrl отправляем запрос с параметром dir указывая действие для героя: 'Stay', 'North', 'South', 'East', 'West'.

Во вложении обработка, которая инициализирует новую игру, запускает браузер с ссылкой для просмотра и заставляет героя делать случайные движения.

В следующе статье напишу, как с помощью матриц, выбрать самый кратчайший путь к золоту.  Дерзайте.

На написания статьи натолкнула публикация https://geektimes.ru/post/291823/ и https://geektimes.ru/post/291879/

Вступайте в нашу телеграмм-группу Инфостарт

Искусственный интеллект ИИ Виндиниум Vindinium json http запросы игры боты

См. также

Игры 1С 8.3 Россия Бесплатно (free)

Классическая игра Три в ряд. При образовании комбинации из 3 и более фишек они исчезают, новые фишки падают сверху, а игрок получает очки. За длинные комбинации (4-5 фишек) начисляются бонусные очки.

05.03.2026    643    84    user2163916    4    

8

Игры 1С:Предприятие 8 Россия Бесплатно (free)

Сокобан (Sokoban) — это классическая игра-головоломка, где игроку необходимо расставить ящики по целям, перемещая их по лабиринту.

20.02.2026    579    52    user2163916    3    

12

Игры 1С 8.3 Бесплатно (free)

Это расширение, практически к любой конфигурации 1С, идеально подойдёт не для того, чтобы парализовать работу организации, а для того, чтобы сформировать коллектив, объединённый общими целями, ценностями и интересами. И всё это достигается простым регулярно проводимым мероприятием по сплочению команды – шашечным турниром! В этом, не побоюсь этого слова, приложении, можно провести шашечную битву как с коллегой, так и самому с собой, если у вас раздвоение личности. А также к вашим услугам почти искусственный интеллект, то есть бот, который честно и по правилам играет с вами в поддавки, когда по правилам вы должны играть в обычные шашки.

28.12.2025    1476    102    Knyaz3d    6    

11

Игры 1С:Предприятие 8 Россия Бесплатно (free)

Преврати свой 1С с обычными формами в мощную игровую консоль! И пусть баланс подождет!

13.10.2025    8078    159    slava_1c    14    

44

Игры 1С:Предприятие 8 Россия Бесплатно (free)

Внешняя обработка, реализующая классическую игру "Крестики-нолики". Особенностью обработки является реализация противника, способного блокировать ходы пользователя и пытаться выиграть.

02.10.2025    1631    73    user2163916    2    

8

Игры 1С:Предприятие 8 Бесплатно (free)

Моя реализация игры "Сапер" на 1С.

15.04.2025    2779    170    Caliban    5    

17

Игры 1С:Предприятие 8 Россия Бесплатно (free)

Игра "Сапёр" на 1С. Три уровня.

04.04.2025    3854    228    user2015123    9    

18

Игры 1С:Предприятие 8 Бесплатно (free)

Игра Змейка на объектах форм, а ля ООП, или что можно сотворить за час )))

20.02.2025    3695    138    starik-2005    9    

16
Для отправки сообщения требуется регистрация/авторизация