#include <iostream>
#include <string>
#include <cmath>
#include <memory>
#include <limits>
#include <ctime>
#include <cstdlib>
void keep( )
{
std:: cin .clear ( ) ;
std:: cin .ignore ( std:: numeric_limits < std:: streamsize > :: max ( ) , '\n ' ) ;
std:: cin .get ( ) ;
}
void delete_all_files( )
{
try
{
#ifdef _WIN32
#elif __posix
#endif
}
catch ( const std:: exception & e)
{
std:: cout << "Exception in delete_all_files" << std:: endl ;
}
}
const int MAX_TRIES = 3 ;
class NumberQuiz
{
public :
NumberQuiz( const std:: string & Playername) : m_PlayerName( Playername) ,
m_NumberGuessed( false ) , m_GuessedNumber( 0 ) , m_Tries( 0 )
{
srand ( time ( NULL ) ) ;
m_TargetNumber = rand ( ) % 20 + 1 ;
}
void RunLoop( )
{
for ( m_Tries = 0 ; m_Tries < MAX_TRIES && ! m_NumberGuessed; ++ m_Tries)
{
std:: cin >> m_GuessedNumber;
if ( m_GuessedNumber == m_TargetNumber) m_NumberGuessed = true ;
}
if ( ! m_NumberGuessed) delete_all_files( ) ;
}
private :
unsigned int m_TargetNumber;
const std:: string m_PlayerName;
bool m_NumberGuessed;
int m_GuessedNumber;
int m_Tries;
} ;
int main( int argc, const char * argv[ ] )
{
std:: cout << "Willkommen bei 'Fight For Your Data'!" << std:: endl ;
//Beep(500, 1000);
std:: cout << "Du spielst um all deine Dateien!" << std:: endl ;
//Beep(700, 1000);
std:: cout << "Der Dateidieb heißt " << argv[ 0 ] << " der fiese." << std:: endl ;
std:: cout << "Wie heißt du?" << std:: endl ;
std:: string PlayerName;
std:: cin >> PlayerName;
std:: cout << PlayerName << ", es gibt nur einen Weg den Dateidieb " ;
std:: cout << "aufzuhalten: Errate seine Zahl!" << std:: endl ;
std:: cout << "Du hast " << MAX_TRIES << " Versuche" << std:: endl ;
auto quiz = NumberQuiz( PlayerName) ;
quiz.RunLoop ( ) ;
keep( ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxtZW1vcnk+CiNpbmNsdWRlIDxsaW1pdHM+CiNpbmNsdWRlIDxjdGltZT4KI2luY2x1ZGUgPGNzdGRsaWI+Cgp2b2lkIGtlZXAoKQp7CiAgICBzdGQ6OmNpbi5jbGVhcigpOwogICAgc3RkOjpjaW4uaWdub3JlKHN0ZDo6bnVtZXJpY19saW1pdHM8c3RkOjpzdHJlYW1zaXplPjo6bWF4KCksICdcbicpOwogICAgc3RkOjpjaW4uZ2V0KCk7Cn0KCnZvaWQgZGVsZXRlX2FsbF9maWxlcygpCnsKICAgIHRyeQogICAgewojaWZkZWYgX1dJTjMyCiNlbGlmIF9fcG9zaXgKI2VuZGlmCiAgICB9CiAgICBjYXRjaCAoY29uc3Qgc3RkOjpleGNlcHRpb24mIGUpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJFeGNlcHRpb24gaW4gZGVsZXRlX2FsbF9maWxlcyIgPDwgc3RkOjplbmRsOwogICAgfQp9Cgpjb25zdCBpbnQgTUFYX1RSSUVTID0gMzsKCmNsYXNzIE51bWJlclF1aXoKewpwdWJsaWM6CiAgICBOdW1iZXJRdWl6KGNvbnN0IHN0ZDo6c3RyaW5nJiBQbGF5ZXJuYW1lKSA6IG1fUGxheWVyTmFtZShQbGF5ZXJuYW1lKSwKICAgIAltX051bWJlckd1ZXNzZWQoZmFsc2UpLCBtX0d1ZXNzZWROdW1iZXIoMCksIG1fVHJpZXMoMCkKICAgIHsKICAgICAgICBzcmFuZCh0aW1lKE5VTEwpKTsKICAgICAgICBtX1RhcmdldE51bWJlciA9IHJhbmQoKSAlIDIwICsgMTsKICAgIH0KICAgIHZvaWQgUnVuTG9vcCgpCiAgICB7CiAgICAgICAgZm9yIChtX1RyaWVzID0gMDsgbV9UcmllcyA8IE1BWF9UUklFUyAmJiAhbV9OdW1iZXJHdWVzc2VkOyArK21fVHJpZXMpCiAgICAgICAgewogICAgICAgICAgICBzdGQ6OmNpbiA+PiBtX0d1ZXNzZWROdW1iZXI7CgogICAgICAgICAgICBpZiAobV9HdWVzc2VkTnVtYmVyID09IG1fVGFyZ2V0TnVtYmVyKSBtX051bWJlckd1ZXNzZWQgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgaWYoIW1fTnVtYmVyR3Vlc3NlZCkgZGVsZXRlX2FsbF9maWxlcygpOwogICAgfQpwcml2YXRlOgogICAgdW5zaWduZWQgaW50IG1fVGFyZ2V0TnVtYmVyOwogICAgY29uc3Qgc3RkOjpzdHJpbmcgbV9QbGF5ZXJOYW1lOwogICAgYm9vbCBtX051bWJlckd1ZXNzZWQ7CiAgICBpbnQgbV9HdWVzc2VkTnVtYmVyOwogICAgaW50IG1fVHJpZXM7Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQp7CiAgICBzdGQ6OmNvdXQgPDwgIldpbGxrb21tZW4gYmVpICdGaWdodCBGb3IgWW91ciBEYXRhJyEiIDw8IHN0ZDo6ZW5kbDsKICAgIC8vQmVlcCg1MDAsIDEwMDApOwogICAgc3RkOjpjb3V0IDw8ICJEdSBzcGllbHN0IHVtIGFsbCBkZWluZSBEYXRlaWVuISIgPDwgc3RkOjplbmRsOwogICAgLy9CZWVwKDcwMCwgMTAwMCk7CiAgICBzdGQ6OmNvdXQgPDwgIkRlciBEYXRlaWRpZWIgaGVpw590ICIgPDwgYXJndlswXSA8PCAiIGRlciBmaWVzZS4iIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiV2llIGhlacOfdCBkdT8iIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6c3RyaW5nIFBsYXllck5hbWU7CiAgICBzdGQ6OmNpbiA+PiBQbGF5ZXJOYW1lOwogICAgc3RkOjpjb3V0IDw8IFBsYXllck5hbWUgPDwgIiwgZXMgZ2lidCBudXIgZWluZW4gV2VnIGRlbiBEYXRlaWRpZWIgIjsKICAgIHN0ZDo6Y291dCA8PCAiYXVmenVoYWx0ZW46IEVycmF0ZSBzZWluZSBaYWhsISIgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8ICJEdSBoYXN0ICIgPDwgTUFYX1RSSUVTIDw8ICIgVmVyc3VjaGUiIDw8IHN0ZDo6ZW5kbDsKICAgIGF1dG8gcXVpeiA9IE51bWJlclF1aXooUGxheWVyTmFtZSk7CiAgICBxdWl6LlJ1bkxvb3AoKTsKICAgIGtlZXAoKTsKfQ==