class Robot { // Attribute: int radius; // Radius des Roboters float xPos; // x-Position des Roboters float yPos; // y-Position des Roboters float angle; // Richtung des Roboters /* * Konstruktor */ Robot(int radius, float x, float y, float angle) { this.radius = radius; this.xPos = x; // alternativ: xpos = x; this.yPos = y; // alternativ: yPos = y; this.angle = angle; } // Methoden: /* * Berechnet die Entfernung zwischen diesem Roboter und einem anderen Roboter */ float distance(Robot other) { float deltaX = this.xPos - other.xPos; // optional: float deltaX = xPos - other.xPos; float deltaY = this.yPos - other.yPos; float dist = sqrt((sq(deltaX) + sq(deltaY))) - this.radius - other.radius; return dist; } /* * Zeichnet den Roboter */ void drawRobot() { ellipse(xPos, yPos, radius*2, radius*2); // *2, weil die ellipse-Funktion den Diameter verwendet line(xPos, yPos, xPos + radius * cos(angle), yPos + radius * sin(angle)); // Linie zwischen dem Roboterzentrum und dem Roboterrand in die Bewegungsrichtung } /* * Bewegt den Roboter nach vorne in seine Richtung */ void move(float distance) { xPos = xPos + distance * cos(angle); yPos = yPos + distance * sin(angle); } /* * Dreht den Roboter */ void turn(float angleDiff) { angle = angle + angleDiff; } }