#1 - Sistema de fila

Sistema de fila, grupos e times.

Olá Dev! Neste desafio, sua tarefa será desenvolver uma solução que resolva o problema descrito a seguir, seguindo as instruções e regras fornecidas.


Problema:

Desenvolvemos um modo de jogo PvP que reúne 10 jogadores divididos igualmente em dois times, competindo rodada a rodada até que um dos times alcance 13 pontos e conquiste a vitória.

Com o modo de jogo finalizado, precisamos de um sistema de filas que identifique grupos de jogadores buscando partida e forme times prontos para iniciar o jogo.


Condições gerais:

  1. Por se tratar de um sistema de fila que comporta a formação de times baseados em grupos, os jogadores em um grupo "incompleto" não podem ser separados e precisam permanecer juntos durante a formação de um time.

  2. Os grupos dos jogadores devem ser persistidos para que ao fim da partida, os mesmos retornem a busca de novos times e partidas no mesmo grupo.


Observações importantes:

  1. Utilize Lua como linguagem principal para o desenvolvimento, dentro do ambiente do FiveM;

  2. Priorize a eficiência e a escalabilidade do sistema;

  3. Documente adequadamente o código para facilitar a manutenção e futuras expansões;

  4. Envie o código para um repositório destinado ao desafio, fazendo o uso de boas práticas do uso do Git & Github.


Solução requerida:

  1. A formação de times de 5 jogadores;

  2. A preservação dos grupo;

  3. A definição dos times de ataque e defesa da times partida;

  4. O consumo de uma função (Fictícia), quando os times estiverem prontos para iniciar a partida.

Utilize a Table a seguir como dados de fila, onde determinados grupos de jogadores estão buscando pela formação de times e partida.


Critérios de avaliação:

  1. Funcionalidade e eficiência do sistema de fila e formação de times;

  2. Qualidade da implementação em Lua;

  3. Documentação clara e concisa do código;

  4. Boas práticas de desenvolvimento;

  5. Boas práticas de uso do Git e Github;


Observações adicionais:

Extensões usadas pelo time de desenvolvimento WINS
  • Lua by Sumneko [sumneko.lua]

  • CfxLua (FiveM/RedM) IntelliSense [overextended.cfxlua-vscode]

  • EditorConfig for VS Code [EditorConfig.EditorConfig]

Last updated