Skip to content

m20-sch57/lowest-unique-number

Repository files navigation

Lowest Unique Number game

Репозиторий для проведения соревнования стратегий для игры "lowest-unique-number".

Правила игры

Игра заключается в следующем: каждый из N игроков выдаёт натуральное число от $0$ до $10^6-1$, после чего игрок с минимальным уникальным числом признаётся победителем (если уникальных чисел нет, то объявляется ничья). Игра повторяется TURNS раз, причём после каждого хода, кроме последнего, игрокам рассылаются ответы других игроков.

Формат взаимодействия стратегии

В первой строке входных данных содержатся три целых числа N, k, TURNS – кол-во игроков, номер вашей стратегии (от $0$ до $N-1$), кол-во ходов. Далее TURNS раз повторяется следующее:

  1. Стратегия выводит своё число (от $0$ до $10^6-1$).
  2. Если ход не последний, то стратегия должна прочитать список из N чисел, разделённых пробелом – ходы всех игроков.

Ваша программа должна быть исполняемым файлом под Ubuntu >=20.04.

После каждого хода надо не забывать сбрасывать буфер вывода! В C++ это вывод std::endl, в Python – по умолчанию, если дописать хедер #!/usr/bin/python3 -u.

Пример стратегии на языке Python

#!/usr/bin/python3 -u

import random

n, k, cnt_turns = map(int, input().split())
for turn in range(cnt_turns):
    print(random.randint(0, 3))
    if turn != cnt_turns - 1:
        turns = list(map(int, input().split()))

Запуск стратегий

Пусть N0 – кол-во отправленных стратегий. Турнир происходит в номинациях с $N = 3, ..., N0$ игроками. Каждый турнир состоит из N_ROUNDS раундов, в которых N игроков выбираются случайно. За каждую победу даётся 1 очко, а результат стратегии – это отношение набранных ею очков к максимальному возможному.

c backend

TODO

c backend API

TODO


python plotter for one round

TODO


python frontend for running game of many rounds

TODO