Informatikunterricht

am Gymnasium Kirchenfeld

Benutzer-Werkzeuge

Webseiten-Werkzeuge


robocode:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
robocode:start [2015/03/16 16:33] rotherobocode:start [2020/10/13 14:25] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Robocode ====== ====== Robocode ======
  
 +<WRAP download>
 +[[http://downloads.sourceforge.net/project/robocode/robocode/1.9.2.4/robocode-1.9.2.4-setup.jar|Robocode 1.9.2.4 für Windows]]
 +</WRAP>
 ==== Spielregeln ==== ==== Spielregeln ====
  
Zeile 15: Zeile 18:
 === Energie === === Energie ===
  
-Ein Roboter verliert Energie bei folgenden Ereignissen:+Beim Start eines Kampfes hat ein Robotes eine Energie von 100.
  
-^ Ereignis ^ Schaden ^ +Ein Roboter verliert/gewinnt Energie bei folgenden Ereignissen: 
-| in eine Wand fahren | max(abs(v) * 0.5 - 1, 0) | + 
-| von einem gegnerischen Geschoss getroffen werden | 4 * P + 2 * max(P - 1 , 0) | +^ Ereignis ^ +/- ^ Schaden ^ 
-| von einem Gegner gerammt werden | 0.6 | +| in eine Wand fahren | - | max(abs(v) * 0.5 - 1, 0) | 
-feuern | 3 * P |+| von einem gegnerischen Geschoss getroffen werden | - | 4 * P + 2 * max(P - 1 , 0) | 
 +| von einem Gegner gerammt werden | - | 0.6 | 
 +Treffen eines Gegners | + | 3 * P |
  
 Dabei steht **v** für die Geschwindigkeit des Roboters und **P** für die Geschosskraft (//bullet power//). Dabei steht **v** für die Geschwindigkeit des Roboters und **P** für die Geschosskraft (//bullet power//).
  
 === Bewegung === === Bewegung ===
-  * <javadoc robocode>robocode.Robot#ahead(double)|ahead(double)</javadoc>: Vorwärts fahren. +  * <javadoc robocode>robocode.Robot#ahead(double)|ahead(double)</javadoc>: Vorwärts fahren 
-  * <javadoc robocode>robocode.Robot#back(double)|back(double)</javadoc>: Rückwärts fahren. +  * <javadoc robocode>robocode.Robot#back(double)|back(double)</javadoc>: Rückwärts fahren 
-  * <javadoc robocode>robocode.Robot#turnLeft(double)|turnLeft(double)</javadoc>: Nach links drehen. +  * <javadoc robocode>robocode.Robot#turnLeft(double)|turnLeft(double)</javadoc>: Nach links drehen 
-  * <javadoc robocode>robocode.Robot#turnRight(double)|turnRight(double)</javadoc>: Nach rechts drehen. +  * <javadoc robocode>robocode.Robot#turnRight(double)|turnRight(double)</javadoc>: Nach rechts drehen 
-  * <javadoc robocode>robocode.Robot#getVelocity()|getVelocity()</javadoc>: Aktuelle Geschwindigkeit in Pixel pro Sekunde. +  * <javadoc robocode>robocode.Robot#getVelocity()|getVelocity()</javadoc>: Aktuelle Geschwindigkeit in Pixel pro Sekunde 
-  * <javadoc robocode>robocode.Robot#getHeading()|getHeading()</javadoc>: Aktuelle Fahrtrichtung in Grad. +  * <javadoc robocode>robocode.Robot#getHeading()|getHeading()</javadoc>: Aktuelle Fahrtrichtung in Grad 
-  * <javadoc robocode>robocode.Robot#getX()|getX()</javadoc>: Aktuelle x-Koordinate des Roboters. +  * <javadoc robocode>robocode.Robot#getX()|getX()</javadoc>: Aktuelle x-Koordinate des Roboters 
-  * <javadoc robocode>robocode.Robot#getY()|getY()</javadoc>: Aktuelle y-Koordinate des Roboters.+  * <javadoc robocode>robocode.Robot#getY()|getY()</javadoc>: Aktuelle y-Koordinate des Roboters 
 +  * <javadoc robocode>robocode.Robot#getBattleFieldHeight()|getBattleFieldHeight()</javadoc>: Höhe des Spielfelds 
 +  * <javadoc robocode>robocode.Robot#getBattleFieldWidth()|getBattleFieldWidth()</javadoc>: Breite des Spielfelds
  
 === Radar === === Radar ===
-  * <javadoc robocode>robocode.Robot#turnRadarLeft(double)|turnRadarLeft(double)</javadoc>: Nach links drehen. +  * <javadoc robocode>robocode.Robot#turnRadarLeft(double)|turnRadarLeft(double)</javadoc>: Nach links drehen 
-  * <javadoc robocode>robocode.Robot#turnRadarRight(double)|turnRadarRight(double)</javadoc>: Nach rechts drehen. +  * <javadoc robocode>robocode.Robot#turnRadarRight(double)|turnRadarRight(double)</javadoc>: Nach rechts drehen 
-  * <javadoc robocode>robocode.Robot#getRadarHeading()|getRadarHeading()</javadoc>: Aktuelle Richtung des Radars in Grad.+  * <javadoc robocode>robocode.Robot#getRadarHeading()|getRadarHeading()</javadoc>: Aktuelle Richtung des Radars in Grad
  
 === Kanone === === Kanone ===
-  * <javadoc robocode>robocode.Robot#turnGunLeft(double)|turnGunLeft(double)</javadoc>: Nach links drehen. +  * <javadoc robocode>robocode.Robot#turnGunLeft(double)|turnGunLeft(double)</javadoc>: Nach links drehen 
-  * <javadoc robocode>robocode.Robot#turnGunRight(double)|turnGunRight(double)</javadoc>: Nach rechts drehen. +  * <javadoc robocode>robocode.Robot#turnGunRight(double)|turnGunRight(double)</javadoc>: Nach rechts drehen 
-  * <javadoc robocode>robocode.Robot#getGunHeading()|getGunHeading()</javadoc>: Aktuelle Richtung des Radars in Grad. +  * <javadoc robocode>robocode.Robot#getGunHeading()|getGunHeading()</javadoc>: Aktuelle Richtung des Radars in Grad 
-  * <javadoc robocode>robocode.Robot#fire(double)|fire(double)</javadoc>: Mit angegebener Energie schiessen. +  * <javadoc robocode>robocode.Robot#fire(E)|fire(double)</javadoc>: Mit angegebener Energie **E** schiessen. Die Geschwindigkeit des Schusses beträgt 20 - 3 * **E** 
-  * <javadoc robocode>robocode.Rules#MIN_BULLET_POWER|Rules.MIN_BULLET_POWER</javadoc>: Minimale Energie eines Schusses (0.1). +  * <javadoc robocode>robocode.Rules#MIN_BULLET_POWER|Rules.MIN_BULLET_POWER</javadoc>: Minimale Energie eines Schusses (0.1) 
-  * <javadoc robocode>robocode.Rules#MAX_BULLET_POWER|Rules.MAX_BULLET_POWER</javadoc>: Maximale Energie eines Schusses (3).+  * <javadoc robocode>robocode.Rules#MAX_BULLET_POWER|Rules.MAX_BULLET_POWER</javadoc>: Maximale Energie eines Schusses (3) 
 +  * <javadoc robocode>robocode.Rules#getBulletSpeed(double)|Rules#getBulletSpeed(E)</javadoc>: Geschwindigkeit eines Geschosses mit der angegebenen Energie **E** 
 + 
  
 === Gegner scannen === === Gegner scannen ===
Zeile 52: Zeile 62:
 Wenn ein Roboter vom Radar erfasst wird, wird die Methode <javadoc robocode>robocode.Robot#onScannedRobot(robocode.ScannedRobotEvent)|onScannedRobot()</javadoc> aufgerufen. Das mitgelieferte <javadoc robocode>robocode.ScannedRobotEvent|ScannedRobotEvent</javadoc> enthält Informationen über den gegnerischen Roboter: Wenn ein Roboter vom Radar erfasst wird, wird die Methode <javadoc robocode>robocode.Robot#onScannedRobot(robocode.ScannedRobotEvent)|onScannedRobot()</javadoc> aufgerufen. Das mitgelieferte <javadoc robocode>robocode.ScannedRobotEvent|ScannedRobotEvent</javadoc> enthält Informationen über den gegnerischen Roboter:
  
-  * <javadoc robocode>robocode.ScannedRobotEvent#getBearing()|getBearing()</javadoc>: Richtung in Grad, in welcher der gescannte Roboter liegt relativ zur eigenen Fahrtrichtung. +  * <javadoc robocode>robocode.ScannedRobotEvent#getBearing()|e.getBearing()</javadoc>: Richtung in Grad, in welcher der gescannte Roboter liegt relativ zur eigenen Fahrtrichtung 
-  * <javadoc robocode>robocode.ScannedRobotEvent#getDistance()|getDistance()</javadoc>: Distanz zum gescannten Roboter in Pixel.+  * <javadoc robocode>robocode.ScannedRobotEvent#getDistance()|e.getDistance()</javadoc>: Distanz zum gescannten Roboter in Pixel 
 +  * <javadoc robocode>robocode.ScannedRobotEvent#getEnergy()|e.getEnergy()</javadoc>: Energie des gescannten Roboters 
 +  * <javadoc robocode>robocode.ScannedRobotEvent#getVelocity()|e.getVelocity()</javadoc>: Geschwindigkeit des gescannten Roboters 
 +  * <javadoc robocode>robocode.ScannedRobotEvent#getHeading()|e.getHeading()</javadoc>: Fahrtrichtung des gescannten Roboters 
 +  * <javadoc robocode>robocode.ScannedRobotEvent#getName()|e.getName()</javadoc>: Name des gescannten Roboters
  
 Die absolute Richtung (//heading//) zum gescannten Roboter kann so ermittelt werden: Die absolute Richtung (//heading//) zum gescannten Roboter kann so ermittelt werden:
Zeile 59: Zeile 73:
 <code java> <code java>
 double headingToRobot = getHeading() + e.getBearing() double headingToRobot = getHeading() + e.getBearing()
-</cod>+</code> 
 + 
 +===== Allgemeines ===== 
 + 
 +  * [[looks]] 
 +  * [[tracking]] 
 + 
 +===== Bewegung ===== 
 +  * [[anti-gravity]] 
 + 
 +===== Zielen ===== 
 + 
 +Es gibt verschiedene Ansätze zum Zielen.
  
 +  * [[target-none]]
 +  * [[target-static]]
 +  * [[target-linear-1]]
  
 [[first-robot]] [[first-robot]]
robocode/start.1426519992.txt.gz · Zuletzt geändert: 2020/10/13 14:25 (Externe Bearbeitung)