Ações
- Plays
As plays são a mais alta hierarquia no STP, elas definem o comportamento estratégico do time.
Nossa arquitetura atual possui 3 plays simultâneas uma para o goleiro, uma para a defesa e uma para o ataque. Cada play é independente da outra, oferecendo maior liberdade de atuação durante o jogo.
Cada play é criada a partir da classe Play e cada play possui dois métodos: um que checa a condição para play iniciar e outro que checa a condição para play finalizar
As condição de finalização indicam quando a play deve parar, ao passo que as condições de inicio verificam se todos os requisitos são satisfeitos para a play iniciar.
Pode acontecer de mais de uma play ter as condições de início atendidas, para não haver ambiguidade na hora da escolha foi criado um sistema de score que dependendo do estado do jogo escolhe a play melhor para a situação.
O código é separado em 3 módulos, como se observa na figura:
![](modulos.png)
Ressalta-se que cada subtime(keeper, defensive e offensive) possui esses 3 módulos que são executados em paralelo.
- Módulo Choose Play
Esse é o primeiro módulo do sistema de play, e é responsável por escolher entre as plays a melhor para ocorrer dado a situação atual do game.
O primeiro passo é verificar se a play atual atingiu a condição de finalização, se não, a play continua executando normal.
No momento que a condição é atingida, ele verifica a condição de inicialização de todas as plays, para aquelas que tiverem a condição satisfeita ele avalia a que possui maior score para iniciar.
![](condição.png)
- Módulo Pick Robots
Esse módulo é executado a partir do momento que um Play foi escolhida para executar. Ele é responsável por coordena o processo de escolha de robôs que faram parte do subtime. Nesse aspecto, a ordem de preferência de escolha é Keeper, Defensive, Offensive; ou seja o subtime do goleiro escolhe robô antes da defesa.
- Módulo Execute Play
Esse módulo é executado a partir do momento que os robôs já tiverem sido associado ao subtime. Ele é responsável por executar as Roles, assim esse modulo é o que são executados os comandos que o robô seguirá.
Atualizado por Felipe Welington há mais de 4 anos · 1 revisões