LogicGates/eu.heili/ExorGate.java
2020-04-14 11:29:26 +02:00

25 lines
739 B
Java

public class ExorGate extends LogicGate {
public ExorGate(final int inputnr) {
super(inputnr);
if (inputnr > 2)
throw (new TooManyInputsException());
}
public ExorGate(final DigitalInput... inputvals) {
super(inputvals);
if (inputvals.length > 2)
throw (new TooManyInputsException());
}
@Override
public boolean getOutput() {
boolean first = getInput(0).getValue();
for (int i = 1; i < getInputNumber(); i++) {
if (getInput(i).getValue() != first)
return true; // if there is one change return true
first = getInput(i).getValue();
}
return false; // all values are the same...
}
}