Robocode

Ajuda no aprendizado ? Ou é perda de tempo … ou diversão apenas heheh

Flww

Se quiser fazer um robo rápido e inteligente, não ajuda no aprendizado de orientação a objetos, mas ajuda a você aprimorar seu pensamento estratégico.

Os melhores robôs que decompilei tinham um código tão feio que deu medo. O código era ofuscado, mas não é esse o caso - as classes eram cheias de constantes e metodos staticos, bem procedural mesmo

As melhores equipes escrevem o código desse jeito para ele ficar mais performático e tomar as decisões mais rapidamente (radar, tiro, movimento e perda de energia).

T+

Proteu, programação procedural é utilizada por ser mais performática? Pode provar esta afirmação?

Enquanto houver estruturas do tipo if/else e loops, estará presente a programação estruturada. Programação 100% orientada a objetos é inviável

Robocode ajuda a aprender Java sim, mas não ajuda a aprender a programar orientado a objetos.
Se é para aprender, acho que vale mais a pena nos métodos convencionais!

É?

Não é o foco do assunto, mas vamo lá :slight_smile:

Se for pra comparar performance, não faz sentido fazer comparando paradigmas (OO x procedural), e admito que foi o que acabou parecendo =)

Então, em termos práticos, com uma linguagem OO você tem um poder maior de abstração sobre a máquina e uma aproximação maior de um problema mundano (representado por objetos).

Sendo mais específico ainda, o overhead de chamada a sistema de uma linguagem OO tende a ser maior - proporcional à seu poder de abstração =) (creio que quem consegue performance e abstração de alto nível está vencendo desafios)

É uma caracteristica comum de linguagens procedurais abstrairem menos (você ainda faz muito trabalho sujo pra ver certas coisas funcionando) e estarem mais próximas da maquina do que de um problema mundano :lol:

Claro que poderiamos fazer comparações mais teóricas, mostrando o numero de operações que uma linguagem OO faz em função de uma linguagem procedural, mas aí já é entrar em detalhes que não domino :slight_smile:

Para quem gosta do assunto de técnicas de design, mecanismos stack-based, etc: Design Techniques

T+

Olá,

Confesso que hoje foi a primeira vez que li sobre tal Robocode, mas…

http://robocode.sourceforge.net/help/physics/physics.html

Então… pelo que entendi, a performance do código não afetaria a performance do robô.

[]s,
Sami

Então certamente as equipes dos robos nao sabiam disso :wink: minhas conclusoes foram sobre o codigo que vi (feio pra caramba) =)

T+

[quote=Foxlol]Ajuda no aprendizado ? Ou é perda de tempo … ou diversão apenas heheh

Flww[/quote]

Com RoboCode vc aprende:

  • Conceitos de IA
  • POO (extende classes) p.e. extends AdvancedRobot
  • Aprende a ler documentação (pq não é como o Eclipse q já vai dando os métodos da classe).
  • Aprende a sintaxe Java
  • Aprende Loop’s e condições if else
  • Desenvolve sua lógica de programação e estratégia
  • O código vc pode identizar, n precisa deixar ele “feio” (só preguisoço não dá tab… :lol: )
  • Pode ser tudo numa classe só, mas para aprender é um otimo recurso…

É legal e divertido pra quem quer começar, eu defendo essa tese, já que ministro palestras sobre Java e RoboCode :smiley:

Só. Na verdade nunca li nada sobre smalltalk. Vou dar uma pesquisada pra ver como funciona.

Oi Eduardo,

Sei que este tópico é antigo, mas como vc ministra palestras sobre robocode, gostaria de saber qual técnica é mais viável para fazer treinamento do algoritmo dos robos:
Redes Neurais ou Árvore de Decisão?

vlw, abraço