Configurando Seu Fluxo de Trabalho para Programação Competitiva em Kotlin
Esta é uma continuação do meu artigo anterior, onde o convenço a experimentar o Kotlin para Programação Competitiva. Mas se você já está convencido, este artigo é para você! É um guia passo a passo para configurar seu ambiente local.
Conteudo
O que estamos buscando
Seu fluxo de trabalho local deve ajudá-lo a alcançar algumas coisas diferentes:
- Um processo consistente para iniciar um novo concurso e para criar novos arquivos de solução.
- Acesso rápido ao código repetitivo que é necessário para ler a entrada e escrever a saída em todos os problemas
- Acesso a ferramentas como o Intellisense, um Read-Eval-Print Loop (REPL) e uma interface de depuração.
A configuração a seguir garante tudo isso para você.
Configuração: guia passo a passo
Passo 1
Baixe e instale o IntelliJ IDEA (Community Edition) em seu sistema.
Passo 2
Baixe a versão mais recente do arquivo kotlin-cp.zip desta página de versões do GitHub.
Passo 3
Inicie o IDE e vá para File
-> Import Settings
.
Importe o arquivo de configurações que você baixou na Passo 2.
Clique OK.
Reinicie o Intellij IDEA.
Uso: guia passo a passo
Digamos que você queira participar deste concurso CodeForces (CodeForces Global Round 8).
Vamos examinar o fluxo de trabalho típico:
Passo 1 – Criação de um novo projeto para o concurso
Comece criando um projeto Kotlin com o nome apropriado:
Passo 2 – Criação de um novo arquivo para um problema
Agora, digamos que você queira resolver o primeiro problema do concurso:
Crie um novo arquivo para começar a escrever a solução. Primeiro selecione a pasta src no painel de navegação do Projeto:
Em seguida, pressione alt + N para criar um novo arquivo de solução (este atalho vem das configurações que você importou do arquivo kotlin-cp.zip anteriormente). Nomeie o novo arquivo com base no título do problema:
Digressão: entendendo o modelo (pule se quiser)
Antes de começar a codificar a solução, você terá que entender o modelo. Você pode ver o código-fonte completo do modelo aqui. É baseado no modelo nesta postagem do blog (por Spheniscine, em CodeForces).
Na parte superior, você tem um conjunto de funções convenientes para analisar a entrada do console:
As funções são todas declaradas privadas, porque cada arquivo de solução deve ser independente. Quando você criar um novo arquivo para o próximo problema, ele declarará o mesmo conjunto de funções, mas elas serão privadas apenas para aquele arquivo, assim como são privadas apenas para este arquivo.
Essas funções de análise de entrada são usadas em main:
O código real para resolver cada caso de teste é escrito na função solveTestCase() da classe de solução. Observe que o nome da classe é igual ao nome do arquivo fornecido anteriormente:
Esta classe é declarada privada, caso haja necessidade de usar as funções de análise de entrada dentro dela.
Ok, agora de volta às etapas.
Passo 3: analisar a entrada do console
Observe que a primeira linha da função main se encarrega de ler o número de casos de teste e fazer um loop sobre eles:
Você só precisa escrever o código para analisar os casos de teste individuais:
E forneça a entrada analisada para a chamada de função solveTestCase():
Observe que um erro aparece assim que você fornece as entradas para solveTestCase(). Isso porque você ainda não escreveu a definição da função. Faz parte da próxima etapa.
Passo 4 – Escrevendo o código para resolver o problema
Primeiro, você precisa alterar a assinatura da função para corresponder à chamada na função principal. Isso pode ser feito na lista suspensa “error bulb”:
Isso adicionará os argumentos de entrada apropriados à função solveTestCase():
Em seguida, altere o tipo de saída para a função e escreva sua solução:
Digressão: ferramentas úteis
Se você deseja executar o código enquanto fornece entrada do console, pressione Ctrl + Shift + F10:
Se você quiser depurar o código, coloque um ponto de interrupção na sarjeta esquerda ao lado da linha de onde deseja iniciar a depuração e pressione Shift + F9:
Se você deseja abrir o REPL do Kotlin para testar algum código rapidamente, pode fazer isso pressionando Alt + K (este atalho foi adicionado nas configurações do arquivo kotlin-cp.zip):
Passo 5 – Envie sua solução
Como o código do arquivo é independente, o envio é fácil.
Em alguns sites, você copia e cola todo o conteúdo do arquivo em um editor. Em CodeForces, você precisa fazer o upload do arquivo:
Conclusão
E é isso!
Pode parecer longo porque tentei ser o mais explícito possível sobre todas as coisas que você precisa fazer. Mas siga essas etapas uma ou duas vezes, e logo você estará fazendo tudo isso em questão de segundos.
Ah, e reserve um tempo para se familiarizar com o depurador (Shift + F9) e o REPL do Kotlin (Alt + K) mais tarde – eles são muito úteis na prática.
Boa codificação!