Robocode / Übersetzen

Anna_x96

Mitglied
12148
12149
Kann mir jemand vielleicht helfen diese Codes zu verstehen/ Übersetzen ? Mir fehlen noch ETCS Punkte und musste was wählen von der Uni aus ...das es so kompliziert ist hätte ich nicht gedacht. Also der Prof will das wir zu fast jeder Zeile was sagen können könnt ihr mir da helfen ? Liebe Grüße Anna
 

Anna_x96

Mitglied
Und worin besteht jetzt Dein Problem? Der Code ist doch zum Großteil selbsterklärend.
Zeile 118 TurnGunAmt was bedeutet das ?
Und kann ich es so sagen : normalRelativAngleDegrees = Normalisiert einen Winkel also bedeutet , dass der Winkel auf den Bereich -180 bis 180 Grad eingeschränkt wird . ( 340) hat den Wert 20 .?
 

mihe7

Top Contributor
turnGunAmt ist vermutlich die Abkürzung für turnGunAmount, was man anhand des restlichen Codes mal deuten könnte als "Grad, um die die Kanone gedreht werden soll" (Nachtrag: und zwar nach rechts gedreht).
 

Anna_x96

Mitglied
Java:
public void onScannedRobot(ScannedRobotEvent e) {

                            if (isTeammate(e.getName())) {    //Don´t fire on teammates

                                          return;

                             }else

                            
if (e.getDistance() < 50 && getEnergy() > 50) {
fire(3);
}                                     
else {                                             
fire(1);
}
double aimAt = getHeading() + e.getBearing();
turnGunRight(Utils.normalRelativeAngleDegrees(aimAt - getGunHeading()));
fire(3);
}
Macht das Sinn ? Erst schießen dann ausrichten ?
 
Zuletzt bearbeitet von einem Moderator:
X

Xyz1

Gast
Und ja... das macht Sinn, nicht auf Freunde schießen und mehr Schüsse auf kurzer Distanz als auf langer, um Munition/Energie zu sparen.
 

Anna_x96

Mitglied
Aber man müsste sich doch erst richtig ausrichten um genau zu treffen? Aber das Programm geht nicht sobald ich die Codes vertausche von der Reihenfolge ?
 
K

kneitzel

Gast
Wie sieht denn dein veränderter Code aus, der nicht mehr geht? Wenn Du uns Deinen Code zeigst und sagst, was genau der Fehler ist, den Du bekommst, dann können wir Dir evtl. helfen.
 

Anna_x96

Mitglied
Danke für die Hilfe es hat am Schluss doch geklappt :)
Die frage die er stellt wird zb. sein : Was passiert zwischen Zeilencode Nr. 49 und 52 und dann Zeileconde Nr.62 bis 68 ?

Doublewert moveAmount wird genutzt um die Länge und Breite des Spielfeldes zu nutzen, mit Abzug der Robotermaßen geteilt durch zwei, um kein Schaden zubekommen wenn sie gegen eine Wand fahren. Zeilencode Nr. 45 mit Math.atan (dy/ dx) , berechnet uns den Winkel aus den beide Roboter beim wenden der Diagonalen benötigen. Zeilencode Nr.53 mit Math.sqrt (dx*dx + dy*dy) , berechnet uns den Pythagoras um die Länge der Strecke zu bestimmen, die dann beide Roboter abfahren können mit dem davor ausgerechneten Winkel. Da der Roboter unter keinen Umständen die Route beenden soll benötigen wir eine while Schleife ohne Abbruchbedingung, die wir ganz am Anfang in unser Programm eingefügt haben (Zeile 36).

Ich habe es so beschrieben ....ist das ok ?
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben