codebattle icon indicating copy to clipboard operation
codebattle copied to clipboard

Добавить реакт вью для турнира stairway

Open vtm9 opened this issue 4 years ago • 0 comments

BrainStorm:

1. список активных матчей текущего раунда,
2. current_task

3. общая статистика:

0. UserName 1,1,1,1,1(победа и поражение)
1. UserName 1,1,1,1,0(победа и поражение)
2. UserName 1,1,1,1,1(победа и поражение)
3. UserName 1,0,0,0,1(победа и поражение)

task_pack.task_ids =[1,2,3,4]

турнир это последовательное решение всеми участниками одновременно задач из task_pack


Мы публикуем одну задачу и даем 5 минут(other timeout)
дальше стартуем следующий раунд и даем другую задачу, и записываем все результаты
в игре записывается время правильного решения

Задача решить все и как можно быстрее



как выглядит окно игры для одного игрока???

1. все тоже самое, вместо редактора второго игрока описание таска, редактор первого игрока на всю высоту экрана

как выглядит окно основного турнира

1. описание текущего таска и показать таймаут до следующего роунда( можно взять похожий компонент таймаута что и в игре)
можно показать таск пак в табах и не открытые таски таска задизеблить.
* сделать  api для  task_get_by_id

elementary 3 minutes
elementary 3 minutes
easy 5 mins
medium 7 mins
hard 10 mins
/* berserk 15 mins */

статистика
{ meta: {
    current_task_id: 1,
    tasks: {
      id: { //  таск в который уже играли)
              name,
              level,
              description_en
              description_ru
              },
      id: { // текущий таск
              name,
              level,
              description_en
              description_ru
              }
      id: { // таск, который еще не начат
              name,
              level,
              }
      id: { // таск, который еще не начат
              name,
              level,
              }
      id: { // таск, который еще не начат
              name,
              level,
              }
    }
    stats: {
        0 => {
              game_results: [
                  { result: "won" | "cancel" | "timeout"  | "gave_up", duratoin: 10000 s, game_id: 1},
                  { result: "won" | "cancel" | "timeout"  | "gave_up", duratoin: 10000 s, game_id: 2},
                  { result: "won" | "cancel" | "timeout"  | "gave_up", duratoin: 10000 s, game_id: 3},
                  { result: "won" | "cancel" | "timeout"  | "gave_up", duratoin: 10000 s, game_id: 4},
              ],
              total_duration: 40000 s
        }
        1 => {}
        2 => {}
        2 => {}
      ]
    }



Codebattle.Tournament{
  access_token: nil,
  access_type: "public",
  creator: Codebattle.User{
    ....
  },
  creator_id: 9,
  data: %Codebattle.Tournament.Types.Data{
    intended_player_ids: '\t',
    matches: [
      %Codebattle.Tournament.Types.Match{
        duration: nil,
        game_id: 64,
        players: [
          %Codebattle.Tournament.Types.Player{
            discord_avatar: nil,
            discord_id: nil,
            game_result: "waiting",
            github_id: 35539033,
            guest: false,
            id: 9,
            is_bot: false,
            lang: "js",
            name: "Diman-812",
            public_id: nil,
            rank: 4,
            rating: 1194,
            team_id: nil
          }
        ],
        round_id: 0,
        state: "active"
      }
    ],
    players: [
      %Codebattle.Tournament.Types.Player{
        discord_avatar: nil,
        discord_id: nil,
        game_result: "waiting",
        github_id: 35539033,
        guest: false,
        id: 9,
        is_bot: false,
        lang: "js",
        name: "Diman-812",
        public_id: nil,
        rank: 4,
        rating: 1194,
        team_id: nil
      }
    ]

  },
  default_language: "js",
  difficulty: "elementary",
  id: 9,
  inserted_at: ~N[2021-10-07 18:11:49],
  is_live: true,
  last_round_started_at: nil,
  match_timeout_seconds: 177,
  meta: %{},
  module: Codebattle.Tournament.Stairway,
  name: "Monthly Arena",
  players_count: nil,
  starts_at: ~U[2021-10-13 21:11:00Z],
  state: "waiting_participants",
  step: 0,
  task_pack: %Codebattle.TaskPack{
    __meta__: #Ecto.Schema.Metadata<:loaded, "task_packs">,
    creator_id: nil,
    id: 1,
    inserted_at: ~N[2021-10-02 17:35:50],
    name: "All_tasks",
    state: "active",
    task_ids: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    updated_at: ~N[2021-10-02 17:35:50],
    visibility: "public"
  },
  task_pack_id: 1,
  type: "stairway",
  updated_at: ~N[2021-10-07 18:11:53]
}

vtm9 avatar Oct 07 '21 18:10 vtm9