Первая номинация Всесибирской олимпиады (2016 г)

Revision ru2, by stgatilov, 2016-11-14 09:44:57

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

Существенным отличием от прошлых лет стало то, что игра по сути своей массовая, а не одиночная (пример 2010 года) или дуэльная (пример 2013 года). В каждой игре участвуют одновременно все соревнующиеся 50 команд. Каждый игрок управляет 10 роботами, которые бегают по круглому полю. Если робот набегает на другого робота меньшего размера (или на пассивную неподвижную "еду"), то он его съедает, увеличивая свою площадь на площадь съеденного объекта. Кто съел всё (а это гарантированно происходит из-за сужения игрового мира) — тот победил. Для произвольного игрока очки за игру определяются по суммарной площади его роботов в наилучший для него момент времени. С ростом робота его скорость снижается, поэтому в игру добавлен "турбо-режим", позволяющий периодически удваивать скорость на короткое время.

Чтобы исключить технические проблемы при одновременном запуске 50 решений, решено было ограничить соревнование одним языком программирования — языком Lua. Это не первый раз, когда нам приходится потребовать от участников использовать этот незнакомый для них язык. Игра запускается в одном процессе ОС, а каждый игрок работает в своём закрытом Lua-состоянии. В результате можно запускать игру с 50 игроками в реальном времени даже на одном обычном компьютере.

Во время тура игра запускалась по циклу примерно каждые три минуты. Каждый раз в игре участвовало по одному самому новому решению от каждой команды. Примерно с середины тура в классах подняли показ результатов последней игры (в цикле) на проекторе или на большом телевизоре. Выглядело это примерно так:

(видео из класса?)

(Какие-нибудь видео по ходу игры)

Сейчас по задаче можно скачать:

  1. Полный архив: исходный код игры, решения участников, виндовые бинарники.

  2. Материалы: только виндовые бинарники.

Tags всесибирская, lua, игра

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English stgatilov 2016-11-15 07:38:02 3276 Initial revision for English translation
ru6 Russian stgatilov 2016-11-15 06:42:05 127 (опубликовано)
ru5 Russian stgatilov 2016-11-14 20:26:56 20 Мелкая правка: '/youtu.be/oemq7x_w6vY)\n\n2. Че' -> '/youtu.be/ugxPVCC4hxQ)\n\n2. Че'
ru4 Russian stgatilov 2016-11-14 19:03:43 432
ru3 Russian stgatilov 2016-11-14 18:12:14 623
ru2 Russian stgatilov 2016-11-14 09:44:57 1967 Мелкая правка: ' игры)\n\nПо задаче м' - (сохранено в черновиках)
ru1 Russian stgatilov 2016-11-05 17:46:01 464 Первая редакция (опубликовано)