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 PyCharm e o jogo já estão instalados na máquina do laboratório.
1. Abrir o projeto no PyCharm
O PyCharm é o programa onde se escreve o código. Ele já está aberto (ou tem um atalho na área de trabalho) com o projeto Python-Robocode carregado. Esse projeto é o jogo em si.
Do lado esquerdo da tela existe uma lista de pastas. As duas 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.
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 → Python File. Dê um nome ao arquivo e aperte Enter.
- Só letras e números, começando por letra. Exemplo:
RoboDoTime7. - Sem espaço, sem acento, sem hífen e sem cedilha.
Robô-Caçadordá problema;RoboCacadorfunciona. - O PyCharm já coloca o
.pyno final, então não digite você mesmo. - 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.
4. Rodar a arena
- Abra o arquivo
main.py. - Clique com o botão direito dentro dele e escolha Run 'main'. (Ou use o botão verde ▶ no topo da janela.)
- A janela do Python Robocode abre.
- No menu de cima, vá em Battle → New.
- Confirme as configurações da arena e siga para a seleção de robôs.
- 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.
- Clique em Start Battle.
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 PyCharm mostra na janela de baixo (o Run) 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.