Mão na massa
Seu primeiro robô na arena
Do computador desligado até ver o seu robô lutando. São cinco passos e leva menos de dez minutos. O VS Code e o jogo já estão instalados na máquina do laboratório.
1. Abrir o projeto no VS Code
O Visual Studio Code, ou VS Code, é o programa onde se escreve o código. Procure este ícone azul na barra de tarefas ou na área de trabalho. Talvez ele já esteja aberto na máquina.
Com o VS Code aberto, vá em File → Open Folder e escolha a pasta Python-Robocode. Essa pasta é o jogo em si.
O VS Code pergunta se você confia na pasta que está abrindo. Responda que sim, senão ele abre o projeto num modo restrito e o botão de rodar não funciona.
Do lado esquerdo aparece a lista de pastas do projeto, o Explorer. As duas coisas que interessam são:
- Robots/
- Onde ficam os robôs. É aqui que o seu arquivo vai. Tudo que estiver nesta pasta aparece na lista de robôs do jogo.
- main.py
- O arquivo que liga o jogo. É ele que você manda rodar.
Robots e o arquivo main.py.
As outras pastas (Objects/, GUI/, robotImages/)
são o motor do jogo. Não precisa mexer em nada ali.
2. Criar o arquivo do seu robô
Clique com o botão direito na pasta Robots e escolha
New File. Digite o nome do arquivo com o
.py no final e aperte Enter.
Robots/. Repare que o nome é digitado por
inteiro, extensão incluída.
- Só letras e números, começando por letra. Exemplo:
RoboDoTime7.py. - Sem espaço, sem acento, sem hífen e sem cedilha.
Robô-Caçador.pydá problema;RoboCacador.pyfunciona. - Digite o
.pyvocê mesmo. O VS Code não acrescenta sozinho, e sem essa terminação o jogo ignora o arquivo. - O arquivo precisa estar dentro de
Robots/. Se cair em outra pasta, o jogo não acha ele.
3. Colar um robô que já funciona
Não comece da página em branco. Vá ao kit inicial, copie o RoboAndarilho (ou o RoboVigia, se quiser um que já atire), cole no seu arquivo e mude duas coisas:
from robot import Robot
class RoboDoTime7(Robot): # troque aqui pelo nome do SEU robô
def init(self):
self.setColor(66, 185, 193) # e troque as cores para as do seu time
...
Aquilo que vem depois de class é o nome que vai aparecer em cima do seu
robô na arena e na tabela final. Deixe igual ao nome do arquivo, que é o jeito de não se
perder. E lembre: um arquivo, um robô. Se você colocar duas classes
no mesmo arquivo, o jogo só carrega a primeira.
Depois de colar, salve com Ctrl + S. Enquanto o arquivo tiver alterações não salvas, o VS Code mostra uma bolinha no lugar do X na aba, e o jogo continua carregando a versão antiga.
4. Rodar a arena
Abra o main.py com um clique e depois clique no botão
▷ (Run Python File), no canto superior direito.
main.py. O botão fica no alto, à direita, e tem forma de
triângulo de play.
A janela do Python Robocode abre. A partir dela:
- No menu de cima, vá em Battle → New.
- Abre a janela Battle Settings, com as regras da partida. Para testar, pode aceitar tudo como está. Clique em Next: Select Robots.
- Na lista da esquerda estão todos os robôs disponíveis. Selecione o seu, clique na seta >> para mandá-lo para a lista da direita, e faça o mesmo com um ou dois adversários. O botão Select All >> joga todos de uma vez.
- Clique em Start Battle.
O que tem na janela Battle Settings
| Campo | O que faz | Padrão |
|---|---|---|
| Arena size | Tamanho da arena em pixels | 700 × 500 |
| Number of battles | Quantas partidas seguidas o torneio terá | no duelo serão 5 |
| Battle duration | Tempo máximo de cada partida | 180 s |
| Inactive after | Quanto tempo parado até começar a punição | 15 s |
| Penalty interval | De quanto em quanto tempo a punição se repete | 5 s |
| Penalty damage | Vida perdida em cada punição | 2 HP |
Esses são os valores que valem no duelo das 17h00. Enquanto testa, vale mexer: aumentar a duração ajuda a ver o robô por mais tempo, e desligar a punição por inatividade evita ruído enquanto você depura.
Quase sempre é uma destas três: o arquivo não está dentro de Robots/;
o arquivo não foi salvo; ou o código tem um erro que impediu o jogo de carregá-lo.
Nesse último caso, o VS Code mostra no painel Terminal, embaixo, uma
linha começando com Problem with bot file e o motivo. Leia essa linha: ela
aponta o problema.
5. Entender a tela do jogo
A arena, no centro
Onde a luta acontece. Cada robô mostra o nome em cima e a vida (HP)
embaixo. As manchas alaranjadas são os campos de visão dos radares, e elas só
aparecem se o robô chamou radarVisible(True).
O painel da direita
Um bloco por robô, com o nome e uma barra de vida que vai do verde ao vermelho.
Clique no nome do robô e abre uma janela com as mensagens que ele
escreveu com rPrint(). É aqui que você descobre o que ele está pensando.
Game Speed
O controle deslizante que muda a velocidade da partida. Deixe rápido para ver o resultado logo; deixe lento para entender o que o seu robô está fazendo de errado.
Battle's Number
Quantas partidas seguidas serão disputadas. No duelo das 17h00 esse número será 5. Para testar, deixe em 1.
Start Last Battle
Repete a última configuração sem passar pelos menus de novo. Este é o botão que você mais vai usar enquanto ajusta o robô.
Terminate Current Battle
Encerra a partida na hora. Útil quando dois robôs ficam se encarando sem nada acontecer.
O ciclo de trabalho
Daqui para a frente, é sempre a mesma volta, rápida de propósito:
- Muda uma coisa no código (uma só, para saber o que causou o quê).
- Ctrl + S para salvar.
- Fecha a janela do jogo e roda o
main.pyde novo. - Start Last Battle.
- Assiste. Melhorou? Mantém. Piorou? Volta atrás.
A janela do jogo carrega o seu robô quando abre. Mudanças feitas com o jogo aberto
não valem para a batalha em andamento. Sempre feche e rode o
main.py de novo.