#include #include #include #include #define XOR 1 #define AND 2 #define OR 3 int main () { int number; int op; int guess; int count = 0; int res, bitcount, mask; srand (time (0)); number = rand () & 255; op = 1 + rand () % 3; while (1) { printf ("Bitte eine Zahl (0-255) raten: "); if ((scanf ("%d", &guess) != 1) || (guess < 0) || (guess > 255)) { printf ("Was fuer eine komische Zahl\n"); continue; } count ++; if (guess == number) break; switch (op) { case AND: res = number & guess; break; case OR: res = number | guess; break; case XOR: res = number ^ guess; break; } bitcount = 0; for (mask = 1; mask <= 255; mask <<= 1) { if (res & mask) bitcount++; } printf ("Hinweis fuer %d: %d\n", guess, bitcount); } assert (guess == number); printf ("%d wurde nach %d Versuchen erraten\n", guess, count); return 0; }