#include <iostream>
#include <vector>
#include <string>
#include <time.h>
#include<stdlib.h>
using namespace std;
string pick_city( vector< string> a,unsigned int x) ;
string set_answer( unsigned int x) ;
char input( ) ;
void chek_for_letter( string city,string & answer,char letter,int & mis) ; //problem so 4tiov parametar
void playGame( ) ;
int main( ) {
playGame( ) ;
return 0 ;
}
string pick_city( vector< string> a, unsigned int x) {
return a[ x] ;
}
string set_answer( unsigned int x) {
string answer;
for ( unsigned int i= 0 ; i< x; i++ ) {
answer+ = "_" ;
}
return answer;
}
char input( ) {
char input; bool ok= true ;
cout << "\n Enter lower case letter :" ;
while ( ok) {
cin >> input;
if ( input>= 'a' && input<= 'z' ) {
return input;
ok= false ;
} else
cout << "Bad input please try again :" ;
}
}
void chek_for_letter( string city,string & answer,char letter,int & mis) {
int matches = 0 ;
for ( unsigned int i= 0 ; i< city.size ( ) ; i++ ) {
if ( letter== city[ i] ) {
answer[ i] = city[ i] ;
matches++ ;
}
}
cout << answer;
if ( matches == 0 ) {
mis-- ;
}
}
void playGame( ) { vector< string> easyCity= { "london" ,"berlin" ,"paris" ,"madrid" ,"stockholm" ,"viena" ,"prague" ,"amsterdam" ,"copenhagen" ,"oslo" } ;
vector< string> mediumCity= { "zagreb" ,"belgrade" ,"skopje" ,"bucharest" ,"bratislava" ,"ljubljana" ,"athina" ,"budapest" ,"sarajevo" ,"sofia" } ;
vector< string> hardCity= { "nicosia" ,"managua" ,"cardiff" ,"nairobi" ,"stanley" ,"palikir" ,"tallinn" ,"rangoon" ,"kampala" ,"honiara" } ;
string city; string answer;
srand ( time ( NULL ) ) ;
cout << "Welcome to my simple hangman game.\n Guess the hidden city but first choose mod \n ( easy-1 medium-2 hard-3 )\n " ;
int mod; bool chekmod= true ;
while ( chekmod) {
cin >> mod;
if ( mod== 1 || mod== 2 || mod== 3 ) { chekmod= false ; } else { cout << "( easy-1 medium-2 hard-3 )\n " ; }
switch ( mod) {
case 1 : { bool play_game= true ; int mistake = 7 ;
unsigned int randomWord= rand ( ) % easyCity.size ( ) ;
cout << "You are playing now on easy mod \n " ;
city= pick_city( easyCity,randomWord) ;
answer= set_answer( city.size ( ) ) ;
cout << answer<< endl;
while ( mistake> 0 ) {
char inp= input( ) ;
chek_for_letter( city,answer,inp,mistake) ;
cout << "MISTAKE: " << mistake << endl;
}
break ; }
case 2 :
cout << "You are playing now on medium mod \n " ;
break ;
case 3 :
cout << "You are playing now on hard mod \n " ;
break ;
default :
cout << "i don't think this will happen" ;
break ;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dGltZS5oPgojaW5jbHVkZTxzdGRsaWIuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpzdHJpbmcgcGlja19jaXR5KHZlY3RvcjxzdHJpbmc+YSx1bnNpZ25lZCBpbnQgeCk7CnN0cmluZyBzZXRfYW5zd2VyKHVuc2lnbmVkIGludCB4KTsKY2hhciBpbnB1dCgpIDsKdm9pZCBjaGVrX2Zvcl9sZXR0ZXIoc3RyaW5nIGNpdHksc3RyaW5nICZhbnN3ZXIsY2hhciBsZXR0ZXIsaW50ICZtaXMpOy8vcHJvYmxlbSBzbyA0dGlvdiBwYXJhbWV0YXIKdm9pZCBwbGF5R2FtZSgpOwoKaW50IG1haW4oKSB7CgogICAgcGxheUdhbWUoKTsKCiAgICByZXR1cm4gMDsKfQpzdHJpbmcgcGlja19jaXR5KHZlY3RvcjxzdHJpbmc+YSwgdW5zaWduZWQgaW50IHgpewogICAgcmV0dXJuIGFbeF07Cgp9CnN0cmluZyBzZXRfYW5zd2VyKHVuc2lnbmVkIGludCB4KXsKICAgIHN0cmluZyBhbnN3ZXI7CiAgICBmb3IodW5zaWduZWQgaW50IGk9MDtpPHg7aSsrKXsKICAgICAgICBhbnN3ZXIrPSJfIjsKCiAgICB9CiAgICByZXR1cm4gYW5zd2VyOwp9CmNoYXIgaW5wdXQoKXsKICAgIGNoYXIgaW5wdXQ7Ym9vbCBvaz10cnVlOwogICAgY291dDw8IlxuRW50ZXIgIGxvd2VyIGNhc2UgbGV0dGVyIDoiOwogICAgd2hpbGUob2spewogICAgICAgIGNpbj4+aW5wdXQ7CiAgICAgICAgaWYoaW5wdXQ+PSdhJyYmaW5wdXQ8PSd6Jyl7CiAgICAgICAgICAgIHJldHVybiBpbnB1dDsKICAgICAgICAgICAgb2s9ZmFsc2U7CiAgICAgICAgfWVsc2UKICAgICAgICAgICAgY291dDw8IkJhZCBpbnB1dCBwbGVhc2UgdHJ5IGFnYWluIDoiOwogICAgfQoKfQoKCnZvaWQgY2hla19mb3JfbGV0dGVyKHN0cmluZyBjaXR5LHN0cmluZyAmYW5zd2VyLGNoYXIgbGV0dGVyLGludCAmbWlzKXsKCiAgICBpbnQgbWF0Y2hlcyA9IDA7CiAgICBmb3IodW5zaWduZWQgaW50IGk9MDtpPGNpdHkuc2l6ZSgpO2krKyl7CiAgICAgICAgaWYobGV0dGVyPT1jaXR5W2ldKXsKICAgICAgICAgICAgYW5zd2VyW2ldPWNpdHlbaV07CiAgICAgICAgICAgIG1hdGNoZXMrKzsKICAgICAgICB9CiAgICB9CgogICAgY291dDw8YW5zd2VyOwogICAgaWYgKG1hdGNoZXMgPT0gMCkgewogICAgICAgIG1pcy0tOwogICAgfQp9CgoKdm9pZCBwbGF5R2FtZSgpeyAgICB2ZWN0b3I8c3RyaW5nPmVhc3lDaXR5PXsibG9uZG9uIiwiYmVybGluIiwicGFyaXMiLCJtYWRyaWQiLCJzdG9ja2hvbG0iLCJ2aWVuYSIsInByYWd1ZSIsImFtc3RlcmRhbSIsImNvcGVuaGFnZW4iLCJvc2xvIn07CiAgICB2ZWN0b3I8c3RyaW5nPm1lZGl1bUNpdHk9eyJ6YWdyZWIiLCJiZWxncmFkZSIsInNrb3BqZSIsImJ1Y2hhcmVzdCIsImJyYXRpc2xhdmEiLCJsanVibGphbmEiLCJhdGhpbmEiLCJidWRhcGVzdCIsInNhcmFqZXZvIiwic29maWEifTsKICAgIHZlY3RvcjxzdHJpbmc+aGFyZENpdHk9eyJuaWNvc2lhIiwibWFuYWd1YSIsImNhcmRpZmYiLCJuYWlyb2JpIiwic3RhbmxleSIsInBhbGlraXIiLCJ0YWxsaW5uIiwicmFuZ29vbiIsImthbXBhbGEiLCJob25pYXJhIn07CiAgICBzdHJpbmcgY2l0eTtzdHJpbmcgYW5zd2VyOwoKICAgIHNyYW5kKHRpbWUoTlVMTCkpOwogICAgY291dDw8IldlbGNvbWUgdG8gbXkgc2ltcGxlIGhhbmdtYW4gZ2FtZS5cbkd1ZXNzIHRoZSBoaWRkZW4gY2l0eSBidXQgZmlyc3QgY2hvb3NlIG1vZCBcbiggZWFzeS0xICBtZWRpdW0tMiAgaGFyZC0zIClcbiI7CiAgICBpbnQgbW9kOyBib29sIGNoZWttb2Q9dHJ1ZTsKICAgIHdoaWxlKGNoZWttb2QpewogICAgICAgIGNpbj4+bW9kOwogICAgICAgIGlmIChtb2Q9PTF8fG1vZD09Mnx8bW9kPT0zKXtjaGVrbW9kPWZhbHNlO31lbHNle2NvdXQ8PCIoIGVhc3ktMSAgbWVkaXVtLTIgIGhhcmQtMyApXG4gIjt9CiAgICAgICAgc3dpdGNoKG1vZCl7CiAgICAgICAgICAgIGNhc2UgMTp7Ym9vbCBwbGF5X2dhbWU9dHJ1ZTtpbnQgbWlzdGFrZSA9NzsKCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcmFuZG9tV29yZD1yYW5kKCklZWFzeUNpdHkuc2l6ZSgpOwogICAgICAgICAgICAgICAgY291dDw8IllvdSBhcmUgcGxheWluZyBub3cgb24gZWFzeSBtb2QgXG4iOwogICAgICAgICAgICAgICAgY2l0eT0gcGlja19jaXR5KGVhc3lDaXR5LHJhbmRvbVdvcmQpOwogICAgICAgICAgICAgICAgYW5zd2VyPXNldF9hbnN3ZXIoY2l0eS5zaXplKCkpOwogICAgICAgICAgICAgICAgY291dDw8YW5zd2VyPDxlbmRsOwogICAgICAgICAgICAgICAgd2hpbGUobWlzdGFrZT4wICl7CiAgICAgICAgICAgICAgICAgICAgY2hhciBpbnA9aW5wdXQoKTsKICAgICAgICAgICAgICAgICAgICBjaGVrX2Zvcl9sZXR0ZXIoY2l0eSxhbnN3ZXIsaW5wLG1pc3Rha2UpOwoKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJNSVNUQUtFOiAiIDw8IG1pc3Rha2UgPDwgZW5kbDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBicmVhazt9CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGNvdXQ8PCJZb3UgYXJlIHBsYXlpbmcgbm93IG9uIG1lZGl1bSBtb2QgXG4iOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIGNvdXQ8PCJZb3UgYXJlIHBsYXlpbmcgbm93IG9uIGhhcmQgbW9kIFxuIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgY291dDw8ImkgZG9uJ3QgdGhpbmsgdGhpcyB3aWxsIGhhcHBlbiI7CiAgICAgICAgICAgICAgICBicmVhazsKCgoKICAgICAgICB9CgogICAgfQp9