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.

Regras para o nome do arquivo
  • Só letras e números, começando por letra. Exemplo: RoboDoTime7.
  • Sem espaço, sem acento, sem hífen e sem cedilha. Robô-Caçador dá problema; RoboCacador funciona.
  • O PyCharm já coloca o .py no 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:

Robots/RoboDoTime7.py
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
        ...
O nome que aparece na arena é o nome da classe

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

  1. Abra o arquivo main.py.
  2. Clique com o botão direito dentro dele e escolha Run 'main'. (Ou use o botão verde ▶ no topo da janela.)
  3. A janela do Python Robocode abre.
  4. No menu de cima, vá em Battle → New.
  5. Confirme as configurações da arena e siga para a seleção de robôs.
  6. 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.
  7. Clique em Start Battle.
Não achou o seu robô na lista?

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:

  1. Muda uma coisa no código (uma só, para saber o que causou o quê).
  2. Ctrl + S para salvar.
  3. Fecha a janela do jogo e roda o main.py de novo.
  4. Start Last Battle.
  5. Assiste. Melhorou? Mantém. Piorou? Volta atrás.
Alterou o código? Reinicie o jogo.

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.