Skip to content

Тестовое задание для High Load FWDays 2020

Notifications You must be signed in to change notification settings

gr8-toolkit/pm-hl-2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Турнирная таблица

Описание

Есть игровая платформа, обрабатывающая игровые события (результаты игроков в рамках игры).

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

У каждого турнира есть турнирная таблица. Турнирная таблица - это результаты игроков по отношению друг к другу. Игрок не имеет места в турнирной таблице, пока не сгенерирует хотя бы одно событие для игры, которая привязана к определенному турниру.

У игроков в турнирной таблице есть место, а также количество набранных очков. После окончания турнира результаты в таблице не меняются.

Данные

Данные в систему поступают в виде сообщений следующих типов:

  • TournamentStarted(String tournamentId, Set gameIds);
  • TournamentFinished(String tournamentId);
  • PlayerEvent(String playerId, String gameId, Integer points);

Задача

Написать реализацию турниров и турнирых таблиц (интерфейсы TournamentProcessor, Tournament, Leaderboard).

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

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

Сделав задачу, выложите проект на GitHub/BitBucket etc и оставьте ссылку на ваше решение в графе “Ссылка” в гугл-форме.

Комментарии (например, мысли о том, как бы вы идеально реализовали данную задачу) вы также можете оставить в разделе "Комментарии" в гугл-форме.

About

Тестовое задание для High Load FWDays 2020

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages