package tpe.exceptions.roboter; import java.util.*; import tpe.exceptions.RobotException; import tpe.exceptions.RobotIllegalStateException; import tpe.exceptions.RobotMagicValueException; public class R2D2 extends Robots { RobotType robotType; private RobotException lastException; private String name; private boolean powerSwitch; private int id; StringBuilder sb = new StringBuilder(); public R2D2(String name,int id) { super(name); this.id=id; this.name = name; robotType= RobotType.R2D2; } @Override public String speak(int[] zahlen) throws RobotException { for (int i = 0; i < zahlen.length; i++) { sb.append(zahlen[i]); if (i < zahlen.length - 1) { sb.append(", "); } } String output = sb.toString(); return output; } @Override public int[] think(int[] zahlen) throws RobotException { if(!isPowerOn()) { throw new RobotIllegalStateException("Der Roboter ist ausgeschaltet!", this.getName()); } else if(checkRobotMagicValueException(zahlen)==true) { throw new RobotMagicValueException("Zahl 42 kann nicht verarbeitet werden!",this.getName()); } else { // Iterate through zahlen from left to right for (int i = 0; i < zahlen.length - 1; i++) { // Set the index of the current smallest element to i int minIndex = i; // Search the smallest element in zahlen for (int j = i + 1; j < zahlen.length; j++) { if (zahlen[j] < zahlen[minIndex]) { minIndex = j; } } // Switch the smallest with the current element int temp = zahlen[i]; zahlen[i] = zahlen[minIndex]; zahlen[minIndex] = temp; } return zahlen; } } public RobotType getRobotType () { return this.robotType; } }