Esse artigo faz parte da revista Clube Delphi Edição 103. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse artigo em PDF.imagem_pdf.jpg

v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}

Errata: Quick Update

 

Pedimos desculpas pela publicação do QuickUpdate na edição 103. Por um descuido ele foi publicado de maneira repetida com a edição anterior. O artigo correto que deveria ter sido publicado segue abaixo.

 

Aprendendo a programar...jogando!

Qual o método mais fácil para aprender a programar? Com certeza muitos irão responder dizendo: praticando, oras. De fato, a prática leva a perfeição, mas há aqueles que prefiram se aventurar de outras formas. Na coluna QuickUpdate dessa edição vou lhes apresentar o Colobot, um software, ou melhor um game, que ensina a programar. Isso mesmo.

O Colobot é um jogo para PC’s onde o objetivo é colonizar outros planetas e combater forças alienígenas. Até ai, parece um game como qualquer outro, mas o especial é que você na verdade precisa controlar seu personagem e diversos robôs programando suas tarefas para que realizem as missões estabelecidas. A linguagem é própria, uma mistura de C/C++, Java e Cobol, o que acaba sendo uma meta-linguagem. O game é bem interessante, cada robô tem uma função específica e pode ser programado para andar, parar, voar, atirar, e até ser reabastecer. Para os iniciantes há um vasto número de exercícios que vão desde eliminar aranhas no campo de batalha até construir estruturas complexas.

Na Figura 1 vemos um dos robôs que podem ser usados durante a jogatina. Ele é basicamente uma espécie de soldado. Sua principal característica é defender o território. Não é possível ver na imagem, mas atrás dele há uma bateria que, depois de consumida (Figura 2), pode trocada por outra, porém somente um robô especial pode fazer essa troca e mediante a uma dada programação.

 


Figura 1. Robô soldado

 


Figura 2. Robô trocando bateria

 

Na Figura 3 vemos esse mesmo robô em um ambiente aberto, porém hostil. Veja que há três aranhas em volta dele e um astronauta. No jogo, você é o astronauta que precisa colonizar o planeta. O cenário que vemos na Figura 3 é o início na primeira missão de exercício. O objetivo é atirar nas três aranhas com o robô. Para programar o equipamento, basta selecioná-lo no cenário e clicar no botão {..} na barra de ferramentas inferior (Figura 4).  Nós podemos criar vários scripts de execução para cada robô. Veja que ao lado esquerdo do botão {..} nós encontramos os itens 1, 2, 3 e 4: Solution. O Solution é o nome do script, que nesse caso é a solução da primeira missão.

 


Figura 3. Primeira missão

 


Figura 4. Barra de ferramentas

 

A linguagem de programação

Como mencionado anteriormente, a linguagem é própria e um misto de C/C++, Java e Cobol. A utilização do game como ferramenta de aprendizado pode parecer um tanto estranha a princípio, mas acaba criando um determinado interesse no aluno em aprender mais e mais comandos. Vejamos a solução do primeiro problema na Listagem 1 e que também poder ser vista na Figura 5 diretamente no editor de códigos.

 

Listagem 1. Solução o primeiro problema

01 extern void object::Solution()

02 {

03   aim(0);

04   fire(1);

05

06   turn(90);

07   fire(1);

08

09   turn(-180);

10   fire(1);

11

12 }

 

Nas linas 3 e 4 ativamos o robô e disparamos um tiro.  Como nossa próxima aranha está a esquerda do robô 90°, então usamos o método turn() passando para ele o grau que queremos para girar o personagem. Atiramos novamente e viramos 180 graus para a direita para pegarmos a última aranha. Como vemos, a programação é simples, mas não se empolgue, porque dependendo da missão você que digitar um pouco mais de código ou talvez mais instruções, como podemos visualizar na Listagem 2.

 


Figura 5. Editor de códigos

 

Listagem 2. Código de controle de motor

extern void object::Solution( ){

  while (true){

    object front, left, right;

 

    front = radar(Barrier,   0, 45, 0, 5);

    left  = radar(Barrier,  90, 45, 0, 5);

    right = radar(Barrier, -90, 45, 0, 5);

 

    if (front == null){

      move(5);

      continue;

    }

    if (left == null){

      turn(90);

      continue;

    }

    if (right == null){

      turn(-90);

      continue;

    }

    break;

  }

}

 

Conclusão

Como vimos até brincando é possível aprender a desenvolver sistemas. Como o Colobot, a empresa Epsitec, desenvolvedora do game, possui outros programas nos mesmos moldes e que tem o mesmo objetivo. Eu particularmente já vi outros programas semelhantes a esse ensinando outras linguagens, como o Java por exemplo. O download de demonstração do Colobot pode ser encontrado no link www.ceebot.com/colobot/load-e.php.
Um forte abraço e até a próxima.