RoboterFabrik/Roboter/tpe/exceptions/roboter/R2D2.java

76 lines
1.7 KiB
Java
Raw Normal View History

2022-12-27 11:09:41 +01:00
package tpe.exceptions.roboter;
import java.util.*;
2023-01-07 14:15:53 +01:00
import tpe.exceptions.RobotException;
2023-01-07 16:32:29 +01:00
import tpe.exceptions.RobotIllegalStateException;
import tpe.exceptions.RobotMagicValueException;
2022-12-27 11:09:41 +01:00
2023-01-07 18:48:00 +01:00
public class R2D2 extends Robots {
RobotType robotType;
2023-01-07 16:32:29 +01:00
private RobotException lastException;
2022-12-28 12:22:05 +01:00
private String name;
private boolean powerSwitch;
private int id;
StringBuilder sb = new StringBuilder();
2022-12-28 12:22:05 +01:00
2023-01-07 18:48:00 +01:00
public R2D2(String name,int id) {
super(name);
this.id=id;
2022-12-28 12:22:05 +01:00
this.name = name;
2023-01-07 18:48:00 +01:00
robotType= RobotType.R2D2;
2022-12-27 11:09:41 +01:00
}
2023-01-07 16:32:29 +01:00
2022-12-27 11:09:41 +01:00
@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;
2022-12-27 11:09:41 +01:00
}
2023-01-07 16:32:29 +01:00
2022-12-27 11:09:41 +01:00
@Override
public int[] think(int[] zahlen) throws RobotException {
2023-01-07 16:32:29 +01:00
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());
}
2023-01-07 16:32:29 +01:00
else {
2022-12-28 12:22:05 +01:00
// 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;
2023-01-07 16:32:29 +01:00
}
2022-12-27 11:09:41 +01:00
}
2023-01-07 18:48:00 +01:00
public RobotType getRobotType () {
return this.robotType;
}
2022-12-27 11:09:41 +01:00
}