Neste repositório encontra-se o código fonte utilizado na LARC 2021, na categoria Very Small Size Soccer (VSSS) em ambiente simulado online.
A utilização do código em Python foi possível graças a API desenvolvida pela Equipe Yapira, disponível neste repositório.
Primeiramente, para a instalação correta do nosso repositório, é necessário realizar a instalação do FIRASim e do VSSReferee, se atentando a todos os seus requisitos.
Você pode conferir o passo-a-passo da instalação aqui
Por seguinte, ao clonar esse repositório, instale nossas dependências do python utilizando:
pip3 install -r requirements.txt
Para gerar os arquivos de comunicação entre o código em Python e o simulador em C++, execute no repositório local os seguintes comandos:
mkdir build
cd build
qmake ..
make
LEMBRETE: Todas as vezes que realizar o clone ou gerar uma branch nova a partir da main, realizar esse procedimento de build do repositório.
Para executar nosso código no terminal, você deverá executar o código main.py passando a ele alguns parâmetros, os quais são:
-t
ou--team
: Seleciona a cor que será jogada (blue ou yellow);-s
ou--strategy
: Seleciona a estratégia padrão de jogo (twoAttackers ou default);-op
ou--offensivePenalty
: Seleciona a cobrança de penalti desejada (spin, direct ou switch);-dp
ou--defensivePenalty
: Seleciona a defesa de penalti desejada (spin, spin-v ou direct);-aop
ou--adaptativeOffensivePenalty
: Acionamento das cobranças de penaltis adatativas (on ou off);-adp
ou--adaptativeDefensivePenalty
: Acionamento das defesas de penaltis adatativas (on ou off);
Segue abaixo um exemplo de execução:
python3 main.py -t blue -s twoAttackers -op direct -aop on -dp spin -adp off
É possível executar todos os arquivos (FIRASim, Referee e códigos) ao mesmo tempo. Para isso é necessário criar um arquivo .py ao lado das pastas instaladas anteriormente com o seguinte código:
import os
def fira():
cmd_fira = 'gnome-terminal -x sh -c "./FIRASim/bin/FIRASim; bash"'
print("Abrindo o FIRASim...")
os.system(cmd_fira)
def referee():
cmd_ref = 'gnome-terminal -x sh -c "./VSSReferee/bin/VSSReferee --3v3; bash"'
print("Abrindo o Referee...")
os.system(cmd_ref)
def codigo(time, estrategia):
cmd_ref = 'gnome-terminal -x sh -c "cd LARC-2021-Python; python3 main.py'+ ' ' + time + ' ' + estrategia + '; bash"'
print("Abrindo o Código...")
os.system(cmd_ref)
if __name__ == "__main__":
codigo('blue','twoAttackers')
codigo('yellow','twoAttackers')
referee()
fira()