Die Roboter im Team kämpfen lassen
Um die Roboter im Team miteinander kämpfen zu lassen, solltet ihr stehts bei allen wichtigen Funktionen die das Angreifen eines Gegners oder das Fahrverhalten betreffen eine Abfrage einbauen, damit verhindert wird, dass sich die Teammitglieder gegeneinander den Gar ausmachen.
if(!robot.isTeammate(e.getName())) {
//Angriff auf den Gegner...
} else {
//Ausweichen oder sonstiges, da Teammitglied...
}
Kompletten Beitrag lesen? Hier gehts weiter…
Beispiele zu den Klassen
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
In diese Klasse schreibst du nun, welche Interaktionen bei einem gefundenen Gegner ablaufen sollen.
In diesem Beispiel von eurem ersten Quellcode schießt er lediglich eine Kugel der Stärke 1 in die Richtung von eurer Kanonenrohrmündung.
Die Stärke der Kugel könnt ihr in Zahlenwerten anpassen, weshalb es sich lohnt, je nach Entfernung eures Gegners die Kugel stärker, beziehungsweise schwächer abzuschießen.
Dies hat den Effekt, dass zum Beispiel bei einer 1 die Kugel schwach ist, dafür aber schneller an ihr Ziel gelangt. Ergo ist bei einer Kugel Stufe 3 die Geschwindigkeit sehr langsam, dafür aber der Energieverlust umso höher. Der Zahlenwert kann auch als Dezimalzahl angegeben werden und lässt somit einen größeren Spielraum, da die Klasse fire als double deklariert wurde.
Kompletten Beitrag lesen? Hier gehts weiter…
Im letzten Artikel habe ich euch gezeigt, wie man ganz einfach einen Roboter erstellen kann. Allerdings hat diese Standardroutine keine großen Gewinnaussichten, da der Bot nur vor und zurück fährt.
Deswegen fangen wir jetzt an den Bot zu verbessern. Eine Liste mit allen schon verfügbaren Befehlen (API) gibt es hier: Klick
Zuerst müsst ihr festlegen welche Art von Roboter möchte ich, bzw. muss ich verwenden.
Zur Auswahl stehen wie folgt:
- JuniorRobot (Einfachste Klasse, allerdings für einen richtigen Kampf nicht zu empfehlen)
- Robot (Standardauswahl)
- AdvancedRobot (Erweiterte Version von Robot)
- TeamRobot (Basiert auf der AdvancedRobot Klasse, wird benötigt, damit ein Team zusammen arbeiten kann)
Für den Anfang würde ich euch die AdvancedRobot Klasse empfehlen.
Kompletten Beitrag lesen? Hier gehts weiter…
Die ersten Schritte:
Zuerst startet Ihr den Editor und wählt: File >> New >> Robot
Nun könnt ihr eurem Roboter einen Namen geben. Das nächste Eingabefeld ist der Gruppenname bei Robocode. So könnt ihr alle von euch programmierten Roboter in einer Liste anzeigen lassen, oder so gruppieren, dass sie im Team miteinander kämpfen. Mehr dazu, aber später.
Kompletten Beitrag lesen? Hier gehts weiter…
Christian Neu © 2009 - 2012
|
:P
:daumen: 

