# Robocode Hilfe



## Affenjunge (18. März 2009)

Hallo,
ich muss fürs Studium nen Roboter programmieren und deshalb bräuchte ich eine gute Strategie um die Gegner platt zu machen. Kennt sich jemand damit aus und könnte mir vllt ein paar Tipps dazu geben? 

Danke schonmal


----------



## takidoso (18. März 2009)

Also ich würde die Strategie vorschlagen schneller und besser zu sein als alle anderen Roboter 

Mal im Ernst, da kann man sich viel drunter vorstellen. Also momentan gehe ich davon aus, dass es eine Umgebung gibt in der virtuelle Roboter um was auch immer streiten.
Es hängt also ganz von dem Roboter-Framework und seinen Möglichkeiten ab.
Kannst Du das vielleicht näher umreißen?


----------



## Affenjunge (18. März 2009)

http://robocode.sourceforge.net/
deshalb war die frage auch an leute gerichtet, die schon öfters damit zu tun hatten ^^

also, das framework gibt schon einiges her, siehe das api
klar, soll der bot besser als die andern sein  nur, welche Technik bietet sich da am besten an? Muss mich halt noch etwas einarbeiten.


----------



## Kai008 (18. März 2009)

Hab mir mal das deutsche Portal davon angeschaut, ist interessant, vielleicht versuche ich mich auch mal in sowas.
Aber wenn es nur eine reine Fläche ist wo sich Panzer beschießen würde ich vorschlagen, dass deiner versucht so weit wie möglich vor allen abzuhauen, bis nur noch einer übrig ist. Den dann auf voller Geschwindigkeit frontal ansteuern und die restlichen HP wegballern. Dadurch, dass er mit hoher Warscheinlichkeit nichtmehr volle Energie hat, kann deiner eigendlich nur gewinnen, denn wenn die Feuerrate gleich ist wird er schneller seine Energie los sein wie/als du, wenn er versucht zu fliehen hat er eigendlich keine Verteidigungsmöglichkeit (kann er wärend dem fahren mit dem Tower gegen die Fahrrichtung feuern, gilt wieder Möglichkeit 1.)

Natürlich nur, falls man als letzter übrig bleiben muss. Wenn man möglich viele Gegner killen muss ist eine Strategie eigendlich nicht sehr gut möglich, da es nahezu unendlich Möglichkeiten geben kann, je nachdem wie die anderen (re)agieren.
Feindstärke erkennen und für Angriff oder Flucht entscheiden.


----------



## takidoso (19. März 2009)

ich habe mal die FAQs angeschaut. Thema GamePhysics

Daraus geht hervor, dass man wenn man einen Roboter mit einer Kugel trifft man energy bekommt. Also Weglaufen ist vermutlich nicht der beste Weg, da der der übrig bleibt und Dein Gegner werden würde vermutlich stärker sein wird in Sachen Energyvorrat. Also scheint mir Angriff als beste Verteidigung angebrachter zu sein.
http://testwiki.roborumble.org/w/index.php?title=Robocode/FAQ#Game_physics

Ich habe mal einen kurzen Blick aufs Api erhascht. Ich glaube es kommt auch stark darauf an mit welchem RoboterTyp Du Deinen erststellen willst. 
Ich würde verscuhen bei dem Event, der gefeuert wird, wenn einen Roboter wahrgenommen wird, anhand der Geschwindigkeit und Richtung eines Gegners die Vorhalte zu berechnen für eine bessere Trefferchance.
Ich weiß nicht ob es einen Mechanismus gibt, der auch sich nähernde "Kugeln" zu erkennen. Falls ja, würde ich versuchen Ausweichmanöver zu implementieren.


----------

