diff --git a/.gitignore b/.gitignore index 9bb88d3..e1192d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /.DS_Store +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..54aaf06 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + RoboterFabrik + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Roboter/tpe/exceptions/roboter/C3PO.java b/Roboter/tpe/exceptions/roboter/C3PO.java index 70d5e5b..916a850 100644 --- a/Roboter/tpe/exceptions/roboter/C3PO.java +++ b/Roboter/tpe/exceptions/roboter/C3PO.java @@ -1,49 +1,85 @@ package tpe.exceptions.roboter; +//import java.util.*; + import tpe.exceptions.RobotException; +import tpe.exceptions.RobotIllegalStateException; +import tpe.exceptions.RobotMagicValueException; -public class C3PO implements Robot{ +public class C3PO extends Robots{ + + RobotType robotType; +// private RobotException lastException; +// private String name; +// private boolean powerSwitch; + private int id; + + StringBuilder sb = new StringBuilder(); + - @Override - public String speak(int[] zahlen) { - // TODO Auto-generated method stub - return null; - } - - @Override - public int[] think(int[] zahlen) { - // TODO Auto-generated method stub - return null; - } - - @Override - public int getId() { - // TODO Auto-generated method stub - return 0; - } - - @Override - public String getName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public void triggerPowerSwitch() { - // TODO Auto-generated method stub + public C3PO(String name, int id) { + super(name); + this.id = id; + this.name = name; + robotType = RobotType.C3PO; } @Override - public boolean isPowerOn() { - // TODO Auto-generated method stub - return false; + 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 RobotException getLastException() { - // TODO Auto-generated method stub - return null; + public int[] think(int[] zahlen) throws RobotIllegalStateException, RobotMagicValueException { + 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 { + int z; + + for (int i = 1; i < zahlen.length; i++) { + z = zahlen[i]; + int k = i; + /** + * hier wird die Zahl solange nach links getauscht bis die Zahl links nicht mehr kleiner + * ist als die Zahl rechts, oder die Zahl ganz links ist. + */ + while (k > 0 && zahlen[k - 1] < z) { + zahlen[k] = zahlen[k - 1]; + k--; + } + zahlen[k] = z; + } + } + + return zahlen; + } + + + public RobotType getRobotType() { + return this.robotType; + } + + @Override + public int getId() { + + return id; } }