Go to most recent revision |
Blame |
Last modification |
View Log
| RSS feed
package de.viathinksoft.distributed.apps.immortal.deepcheck;
import java.math.BigInteger;
import java.util.Iterator;
// TODO: Iterable aufspalten?
public class DeepImmortalCheckIterator
implements Iterator<DeepImmortalCheckState
>,
private DeepImmortalCheckState position;
public DeepImmortalCheckIterator(DeepImmortalCheckState start) {
this.position = start;
}
public boolean hasNext() {
return true;
}
public DeepImmortalCheckState next() {
if (!position.
isImmortal() && (position.
getCount().
compareTo(BigInteger.
ZERO) > 0)) return position
;
BigInteger initialNumber = position.
getInitialNumber();
lastResult = lastResult.multiply(initialNumber);
boolean isImmortable = lastResult.toString().endsWith(initialNumber.toString());
position = new DeepImmortalCheckState(isImmortable, counter, initialNumber, lastResult);
return position;
}
public void remove() {
}
public Iterator<DeepImmortalCheckState
> iterator
() {
return this;
}
}