INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Козлов Илья | Директор по ИТ | ООО "Агрохолдинг "Энергомера"

«СКД от Microsoft. Что умеет MS SQL Reporing Services и в чём он лучше СКД от 1С?»

- Что представляет из себя MS SQL Server Reporting Services (SSRS). Как это работает. - Установка и развертывание SSRS. Это действительно просто. - SQL Server Data Tools. От запроса до отчета несколько кликов мышью. - Усложним задачу. Группировки, вложенные отчеты, расшифровки, параметризация. - Функции SSRS которых нет (и скорее всего никогда не будет) в СКД. Цель доклада - не противопоставление SSRS и СКД и выяснение, кто сильнее: кит или слон. Цель доклада - познакомить с хорошим инструментом создания отчетов и показать сценарии, в которых им можно пользоваться.

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

Сообщество - Игры

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

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

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

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

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

Для начала игры необходимо отправить запрос на сервер, с 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/

8

Скачать файлы

Наименование Файл Версия Размер
Vindinium (v.1.0):
.epf 7,81Kb
18.08.17
2
.epf 1.0 7,81Kb 2 Скачать

См. также

Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение