Giter Site home page Giter Site logo

robocode-solutis-2020's Introduction

Robocode Aspira

Olá! Meu nome é Fábia, sou estudante do curso de Analise e Desenvolvimento de Sistemas da Ucsal. Montei o robô Aspira para participar do desafio Solutis Robot Arena 2020. Eu escrevi "Montei", porque eu analisei o comportamento, estratégias, pontos fortes e fracos de alguns dos principais Robocode e utilizei partes dos códigos de alguns deles para montar a minha lógica de combate.

O nome "Aspira" foi inspirado no filme Tropa de Elite. O robô Aspira também é forte e obstinado como os aspirantes do filme, persegue inimigo até que ele seja eliminado.

Linguagem Utilizada:

☕︎ JAVA

Sobre o Código:

  • run():

É o metodo principal, define o comportamento do robô. O Aspira mantém a arma independente do movimento do robô e o radar gira independente do giro da arma. Foi utilizado um loop para manter o robô e suas partes sempre em movimento.

  • onHitByBullet():

É executado quando o robô é atingido por uma bala, ele revida com força 3 e se afasta 50 pixels.

  • onHitWall:

É executado quando o robô bate na parede, neste caso ele deve seguir na direção contraria para se desviar da parede.

  • onHitRobot:

É executado quando seu robô colide com outro robô. Ele aproveita que o inimigo já está ali tão perto, o define como alvo, identifica ele e atira com força 3, depois ele se afasta.

  • onScannedRobot:

Este talvez, seja o melhor incremento do meu robô, isso porque este evento é executado quando o robô encontra outro robô adversário. A partir dele o robô obtém informações como a distância do robô inimigo, seu ângulo, velocidade, se ele está perto ou não. A partir das informações coletadas vem a tomada de decisão para que o ataque seja feito de forma mais eficaz. O código do Aspira foi estruturado para que ele seja um robô que vai para cima do adversário e o ataca com agressividade e caso ele esteja distante o Aspira vai em busca dele para o atacar. Sua arma está sempre apontada para o seu inimigo, mas ele economiza energia quando o inimigo está distante.

  • onWin:

Este método é chamado quando o robô vence uma batalha. A querida dancinha da vitória! :-D

Pontos Fortes:

  • O robô é bastante agressivo, ele vai em busca do adversário, o encontra e ataca;
  • Sua arma está sempre apontada para o inimigo;
  • Ele diminui a força do tiro economizando energia quando inimigo está mais distante dele;

Pontos Fracos:

  • Quando ele é encuralado, principalmente se for muito próximo de uma parede ele tem dificuldade de sair desta situação.
  • Por conta de sua caracteristica agressiva, de um robô que persegue o seu adversário, ele se expõe demais quando está em uma arena com muitos robôs deixando a retaguarda descoberta enquanto segue em sua perseguição.
  • Podem existir outros pontos fracos que não foram evidenciados nos teste que fiz :-(

O que eu achei da experiência?

Para mim foi uma oportunidade fantástica de adiquirir experiências multiplas em tão pouco tempo. Meu conhecimento na linguagem Java ainda é bem inicial, ainda estou no 3 semestre da faculdade, só havia utilizado Java em pequenas atividades na faculdade, mas nunca foi com um projeto tão legal e divertido como o Robocode. Li a documentação e os tutoriais, utilizei os fóruns, vi vídeos, encontrei muita coisa boa no site da IBM, enfim para mim foi enriquecedor demais. Apesar de não ter o domínio de tudo que tem nos códigos que encontrei, eu me senti muito feliz em conseguir entender a lógica por trás dos códigos de outros robôs e a utilizei a favor do meu projeto, bem como adaptar os seus parametros para a lógica que eu entendi que seria mais funcional.

Esta foi a primeira vez que utilizei o GitLab, então foi mais um aprendizado adicionado à minhas grande lista.

Obrigada Solutis! Eu quero mais!!!

robocode-solutis-2020's People

Contributors

fabiacardoso avatar

Stargazers

thiagovcardoso avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.