#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
//------------------------------------------------------------------------
// Vielleicht den Teil in andere Datei auslagern...
enum ResultType
{
ZU_KLEIN = -1,
RICHTIG = 0,
ZU_GROSS = 1
};
int signum(int x)
{
if ( x < 0 )
return -1;
else if ( x > 0 )
return 1;
else
return 0;
}
ResultType evaluate(int kandidat, int ziel)
{
return static_cast<ResultType>(signum(kandidat - ziel));
}
// Bis hierhin...
//------------------------------------------------------------------------
int main(void)
{
srand(static_cast<unsigned int>(time(NULL)));
int rateZahl = rand() % 1000 + 1;
int eingegebeneZahl;
int anzahlVersuche = 0;
do {
anzahlVersuche++;
cout << anzahlVersuche << ". Versuch" << endl;
cout << "Zufallszahl zwischen 1 und 1000 eingeben: ";
if ( !(cin >> eingegebeneZahl) )
return 1;
ResultType result = evaluate(eingegebeneZahl, rateZahl);
if ( result == ZU_KLEIN )
cout << "Zahl ist zu klein.\n" << endl;
else if ( result == ZU_GROSS )
cout << "Zahl ist zu gross.\n" << endl;
} while ( eingegebeneZahl != rateZahl );
cout << endl;
if ( anzahlVersuche < 10 )
cout << "Weniger als 10 Versuche, Glueck gehabt" << endl;
else if ( anzahlVersuche == 10 )
cout << "Prima, 10 Versuche, Sie sind ueberlegt an das Problem herangegangen" << endl;
else
cout << "Mehr als 10 Versuche, sie haben mehr oder weniger im Nebel gestochert" << endl;
cin.get();
return 0;
}
I2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFZpZWxsZWljaHQgZGVuIFRlaWwgaW4gYW5kZXJlIERhdGVpIGF1c2xhZ2Vybi4uLgplbnVtIFJlc3VsdFR5cGUKewogICAgWlVfS0xFSU4gPSAtMSwKCVJJQ0hUSUcgPSAwLAoJWlVfR1JPU1MgPSAxCn07CgppbnQgc2lnbnVtKGludCB4KQp7CglpZiAoIHggPCAwICkKCQlyZXR1cm4gLTE7CgllbHNlIGlmICggeCA+IDAgKQoJCXJldHVybiAxOwoJZWxzZSAKCQlyZXR1cm4gMDsKfQoKUmVzdWx0VHlwZSBldmFsdWF0ZShpbnQga2FuZGlkYXQsIGludCB6aWVsKQp7CglyZXR1cm4gc3RhdGljX2Nhc3Q8UmVzdWx0VHlwZT4oc2lnbnVtKGthbmRpZGF0IC0gemllbCkpOwp9Ci8vIEJpcyBoaWVyaGluLi4uCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppbnQgbWFpbih2b2lkKQp7CglzcmFuZChzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KHRpbWUoTlVMTCkpKTsKCWludCByYXRlWmFobCA9IHJhbmQoKSAlIDEwMDAgKyAxOwoKCWludCBlaW5nZWdlYmVuZVphaGw7CglpbnQgYW56YWhsVmVyc3VjaGUgPSAwOwoKCWRvIHsKCQlhbnphaGxWZXJzdWNoZSsrOwoJCWNvdXQgPDwgYW56YWhsVmVyc3VjaGUgPDwgIi4gVmVyc3VjaCIgPDwgZW5kbDsKCQljb3V0IDw8ICJadWZhbGxzemFobCB6d2lzY2hlbiAxIHVuZCAxMDAwIGVpbmdlYmVuOiAiOwoJCWlmICggIShjaW4gPj4gZWluZ2VnZWJlbmVaYWhsKSApCgkJCXJldHVybiAxOwoKCQlSZXN1bHRUeXBlIHJlc3VsdCA9IGV2YWx1YXRlKGVpbmdlZ2ViZW5lWmFobCwgcmF0ZVphaGwpOwoJCQoJCWlmICggcmVzdWx0ID09IFpVX0tMRUlOICkKCQkJY291dCA8PCAiWmFobCBpc3QgenUga2xlaW4uXG4iIDw8IGVuZGw7CgkJZWxzZSBpZiAoIHJlc3VsdCA9PSBaVV9HUk9TUyApCgkJCWNvdXQgPDwgIlphaGwgaXN0IHp1IGdyb3NzLlxuIiA8PCBlbmRsOwoKCX0gd2hpbGUgKCBlaW5nZWdlYmVuZVphaGwgIT0gcmF0ZVphaGwgKTsKCgljb3V0IDw8IGVuZGw7CgoJaWYgKCBhbnphaGxWZXJzdWNoZSA8IDEwICkKCQljb3V0IDw8ICJXZW5pZ2VyIGFscyAxMCBWZXJzdWNoZSwgR2x1ZWNrIGdlaGFidCIgPDwgZW5kbDsKCWVsc2UgaWYgKCBhbnphaGxWZXJzdWNoZSA9PSAxMCApCgkJY291dCA8PCAiUHJpbWEsIDEwIFZlcnN1Y2hlLCBTaWUgc2luZCB1ZWJlcmxlZ3QgYW4gZGFzIFByb2JsZW0gaGVyYW5nZWdhbmdlbiIgPDwgZW5kbDsKCWVsc2UKCQljb3V0IDw8ICJNZWhyIGFscyAxMCBWZXJzdWNoZSwgc2llIGhhYmVuIG1laHIgb2RlciB3ZW5pZ2VyIGltIE5lYmVsIGdlc3RvY2hlcnQiIDw8IGVuZGw7CgoKCWNpbi5nZXQoKTsKCXJldHVybiAwOwp9Cg==