Блог пользователя stgatilov

Автор stgatilov, история, 7 лет назад, По-русски

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

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

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

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

Телевизор в комнате жюри

Конечно, интереснее всего было смотреть игры в середине тура, когда стратегии участников сильно менялись. В течение какого-то времени эти игры можно будет скачать с сервера, например при помощи скрипта download.bat. Вот видеозаписи некоторых игр (youtube-плейлист со всеми играми; видео в хорошем качестве можно скачать отсюда):

  1. Через час после начала тура: прогон 100

  2. Через два часа после начала: прогон 150

  3. Через три часа после начала: прогон 175

  4. Через три с половиной часа после начала: прогон 200

  5. Через четыре с половиной часа после начала: прогон 230

  6. После конца тура: прогон 256

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

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

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

  • Проголосовать: нравится
  • +17
  • Проголосовать: не нравится

»
7 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А есть где-нибудь табличка II номинации?

  • »
    »
    7 лет назад, # ^ |
      Проголосовать: нравится +7 Проголосовать: не нравится

    В открытом доступе — нет. Так как скоро начнется opencup на этих задачах.