package de.bplaced.mtgxyz.primes;
public class InfiniteHexa {
private static boolean[][] wert=new boolean[Short.MAX_VALUE][4];
public static final InfiniteHexa MAX_VALUE;
private static boolean[][] buf=new boolean[Short.MAX_VALUE][4];
public static final InfiniteHexa MIN_VALUE;
static {
MIN_VALUE=new InfiniteHexa(wert);
for(int i=0;i<Short.MAX_VALUE;i++) {
buf[i]=new boolean[]{true,true,true,true};
}
MAX_VALUE=new InfiniteHexa(buf);
}
public InfiniteHexa(boolean[][] wert) {
this.setWert(wert);
}
/**
* @return the wert
*/
public boolean[][] getWert() {
return wert;
}
/**
* @param wert the wert to set
*/
public void setWert(boolean[][] wert) {
this.wert = wert;
}
private boolean[] increasebool(boolean[] wert) {
if(wert[0]) {
wert[0]=false;
if(wert[1]) {
wert[1]=false;
if(wert[2]) {
wert[2]=false;
if(wert[3]) {
wert[3]=false;
} else {
wert[3]=true;
}
} else {
wert[2]=true;
}
} else {
wert[1]=true;
}
} else {
wert[1]=true;
}
return wert;
}
public void increase() {
boolean[][] wert=this.getWert();
boolean[] tmp;
boolean ubertrag=true;
int i=0;
while(ubertrag) {
if(i==Integer.MAX_VALUE) break;
tmp=increasebool(wert[i]);
if(!(tmp==new boolean[]{false,false,false,false})) {
ubertrag=false;
}
wert[i]=tmp;
}
this.setWert(wert);
}
@Override
public String toString() {
String hexa="0x";
boolean[][] wert = getWert();
for(int i=0;i<Short.MAX_VALUE;i++) {
if(wert[i]==new boolean[]{false,false,false,false}) hexa=hexa+"0";
else if(wert[i]==new boolean[]{false,false,false,true}) hexa=hexa+"1";
else if(wert[i]==new boolean[]{false,false,true,false}) hexa=hexa+"2";
else if(wert[i]==new boolean[]{false,false,true,true}) hexa=hexa+"3";
else if(wert[i]==new boolean[]{false,true,false,false}) hexa=hexa+"4";
else if(wert[i]==new boolean[]{false,true,false,true}) hexa=hexa+"5";
else if(wert[i]==new boolean[]{false,true,true,false}) hexa=hexa+"6";
else if(wert[i]==new boolean[]{false,true,true,true}) hexa=hexa+"7";
else if(wert[i]==new boolean[]{true,false,false,false}) hexa=hexa+"8";
else if(wert[i]==new boolean[]{true,false,false,true}) hexa=hexa+"9";
else if(wert[i]==new boolean[]{true,false,true,false}) hexa=hexa+"A";
else if(wert[i]==new boolean[]{true,false,true,true}) hexa=hexa+"B";
else if(wert[i]==new boolean[]{true,true,false,false}) hexa=hexa+"C";
else if(wert[i]==new boolean[]{true,true,false,true}) hexa=hexa+"D";
else if(wert[i]==new boolean[]{true,true,true,false}) hexa=hexa+"E";
else if(wert[i]==new boolean[]{true,true,true,true}) hexa=hexa+"F";
else hexa=hexa+"x";
}
return hexa;
}
}