Немного о правилах
- Игровое поле 50х40.
- У каждого игрока в начале 100 единиц здоровья
- Количество боеприпасов неограниченно
- После каждого выстрела требуется перезарядка, поэтому стрелять можно раз в 10 ходов
- При попадании снарядом в противника урон составляет от 40 до 70 единиц (рандомно)
- При выводе из строя соперника - начисляется 5 очков тому, кто его вывел из строя
- Длительность игры 100 ходов или до последнего танка (смотря что наступит раньше)
- Если остается только 1 танк на поле - ему начисляется 15 очков.
- Победитель тот, кто набрал больше очков.
Как управлять танками
При добавлении игроков надо будет указать код на языке 1С, который и будет управлять вашим танком.
Внутри кода доступна переменная СтруктураДанных типа Структура. В ней содержится следующая информация:
- ШиринаИгровогоМира (тип Число)
- ВысотаИгровогоМира (тип Число)
- КоличествоХодов - остаток количества ходов в игре (тип Число)
- НомерИгрока - ваш номер в таблице игроков (тип Число)
- ИгровойМир - описание игрового мира, размещение всех объектов на поле (тип Таблица значений)
Объекты пронумерованы и размещены в игровом мире под числами: 1-10 это танки, -1 вышедший из строя танк, 100-999 снаряды, где 1хх - снаряды первого игрока, 2хх - снаряды второго и т.д. - Игроки - список игроков и информация о них.
А еще внутри кода доступна переменная Действие типа структура. В ней нужно указывать ваши действия. Доступные действия:
- Действие.Движение - может принимать одну из следующих строк "Вверх", "Вниз", "Влево", "Вправо"
- Действие.Выстрел - тип Булево. Если Истина - значит будет попытка выстрела. Попытка будет успешной, если перезарядка игрока равна 0
Готовый код, который может ездить по периметру и стрелять:
МоеПоложение = СтруктураДанных.ИгровойМир.НайтиСтроки(Новый Структура("КоординатыИгрока", СтруктураДанных.НомерИгрока));
Если МоеПоложение.Количество() > 0 Тогда
МоиКоординаты = МоеПоложение[0];
Действие.Движение = "Вверх";
Действие.Выстрел = Истина;
Если МоиКоординаты.Строка < 10 Тогда
Действие.Движение = "Влево";
Если МоиКоординаты.Колонка < 10 Тогда
Действие.Движение = "Вниз";
КонецЕсли;
ИначеЕсли МоиКоординаты.Строка > СтруктураДанных.ВысотаИгровогоМира - 10 Тогда
Действие.Движение = "Вправо";
Если МоиКоординаты.Колонка > СтруктураДанных.ШиринаИгровогоМира - 10 Тогда
Действие.Движение = "Вверх";
КонецЕсли;
ИначеЕсли МоиКоординаты.Колонка < 10 Тогда
Действие.Движение = "Вниз";
ИначеЕсли МоиКоординаты.Колонка > СтруктураДанных.ШиринаИгровогоМира - 10 Тогда
Действие.Движение = "Вверх";
КонецЕсли;
КонецЕсли;
В заключении хочу сказать, что это не онлайн турнир. Чтобы его сделать онлайн нужен сервер и лицензии. А их у меня нет.
Но если кто-то захочет сделать его онлайн - буду только рад, что кому-то, кроме меня тоже зашла эта идея.
Во вложении отчет для любых конфигураций на управляемых формах, платформа 8.3, открывается через Файл - Открыть