public class Riddle {
public static boolean[][] belegt = new boolean[8][3];
public static boolean bedingung0(boolean a, boolean b, boolean c) {
if(implies(a, c)) {
return true;
}
return false;
}
public static boolean bedingung1(boolean a, boolean b, boolean c) {
if(implies(b, a)) {
return true;
}
return false;
}
public static boolean bedingung2(boolean a, boolean b, boolean c) {
if ((b ^ a ^ c)) {
return true;
}
return false;
}
public static boolean bedingung3(boolean a, boolean b, boolean c) {
if (implies(b,(!c && !a)) && implies(c,(!b && !a)) && implies(a,(!c && !b))){
return true;
}
return false;
}
public static boolean implies(boolean d, boolean e) {
if(!d) {
if(!e) {
return true;
}
} if(d) {
if(e || !e) {
return true;
}
}
return false;
}
public static boolean test(boolean a, boolean b, boolean c) {
if (bedingung0(a,b,c) && bedingung1(a,b,c) && bedingung2(a,b,c) && bedingung3(a,b,c)) {
return true;
}
return false;
}
public static void checkRaetsel() {
boolean a;
boolean b;
boolean c;
for (int i = 0; i < 8; ++i) {
a = istBitBelegt(i, 2); //"niederwertigstes bit" konvertiert auf diesen Fall => j = 2
b = istBitBelegt(i, 1);
c = istBitBelegt(i, 0);
System.out.println(String.format(
"a: %5b; b: %5b; c: %5b -> %5b",
a, b, c,
test(a, b, c)));
for (int j = 0; j<3;j++){
if (i<7) {
belegt[i+1][j] = belegt[i][j];
}
}
if ( belegt[i][2] == false ) {
belegt[i+1][2] = true;
} else if (belegt[1][2] = true && i<7) {
belegt[i+1][2] = false;
belegt[i+1][1] = true;
} else if(belegt[i][1] = true && i<7) {
belegt[i+1][1] = false;
belegt[i+1][0] = true;
} if ( (belegt[i][2] == true) && (belegt[i][1] == true)){
belegt[i+1][2] = false;
belegt[i+1][1] = false;
belegt[i+1][0] = true;
}
}
}
public static boolean istBitBelegt(int bitIndex, int value) {
if ( belegt[bitIndex][value] == true ) {
return true;
}
return false;
}
public static void main(String[] args) {
System.out.println();
System.out.println("Thief: ");
checkRaetsel();
}
}