#ifdef HAVE_CONFIG_H #include #endif #include "pet.h" #include #include #include #include #include #include #include using namespace std; int tty_mode = 0; struct termios orig_tty; struct termios new_tty; // Sets up terminal for one-char-at-a-time reads void cbreak (void) { if (tty_mode == 0) { tcgetattr(0, &orig_tty); tty_mode = 1; new_tty = orig_tty; } new_tty.c_lflag &= ~(ICANON | ECHO); new_tty.c_cc[VMIN] = 1; new_tty.c_cc[VTIME] = 0; tcsetattr(0, TCSANOW, &new_tty); } // Returns terminal to normal state after cbreak () void normal (void) { if (tty_mode == 1) { tcsetattr(0, TCSANOW, &orig_tty); new_tty = orig_tty; } } // Checks keyboard buffer (stdin) and returns key // pressed, or -1 for no key pressed int keypress (void) { char keypressed; struct timeval waittime; int num_chars_read; fd_set mask; FD_SET(0, &mask); waittime.tv_sec = 1; waittime.tv_usec = 1000; if (select (1, &mask, 0, 0, &waittime)) { num_chars_read = read (0, &keypressed, 1); if (num_chars_read == 1) return ((int)keypressed); } return (-1); } // Glavni program int main(int argc, char *argv[]){ int c, d=0, kraj=0,starost=0; string s; string poruka="**************\n* \033[22;37mGEJM OUVA'\033[22;31m *\n**************",poruka2=""; normal(); cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \nIme ljubimca? "; cin>>s; Ljubimac pet; pet.NovoIme(s); cbreak(); while(true){ while ((c=keypress()) == -1) { if (d==3){ if (!(++starost%20)) {pet.incgod();starost=0;} pet.mhrana(); if (pet.vhrana()<0){poruka2="* \033[22;37mLjubimac je uginuo od gladi\033[22;31m * \n"; kraj=1;} pet.msreca(); if (pet.vsreca()<0){poruka2="* \033[22;37mLjubimac je otishao da trazi novog gazdu\033[22;31m * \n"; kraj=1;} pet.mzdravlje(); if (pet.vzdravlje()<0){poruka2="* \033[22;37mLjubimac se razboleo i uginuo\033[22;31m * \n"; kraj=1;} if (pet.God()==30){poruka2="* \033[22;37mLjubimac je uginuo od starosti\033[22;31m * \n"; kraj=1;} if (((pet.God()>1)&&(pet.Tezina()>pet.God()*5))||((pet.God()==0)&&(pet.Tezina()>5))) {poruka2="* \033[22;37mLjubimac je uginuo od gojaznosti\033[22;31m * \n"; kraj=1;} if (((pet.God()>1)&&(pet.Tezina()>vrsta; switch(vrsta){ case (1): kolichina=5;k=0; system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"Nahranjen +5%\nTezina +0.05 kg\n";sleep(1);break; case (2): kolichina=20;k=0; system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"Nahranjen +20%\nTezina +0.2 kg\n";sleep(1);break; case (3): kolichina=10;k=0; system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"Nahranjen +10%\nTezina +0.1 kg\nSreca +20%\nZdravlje -5%\n";sleep(1);pet.igrajse();pet.mzdravlje();break; default: system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n"<<"Nepostojeci izbor!\n";sleep(1); } } pet.nahrani(kolichina); cbreak(); } if ( c == 50 ){ pet.igrajse(); pet.mdisciplina();pet.mtezina(); system("clear"); cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m * \n" <<"\033[01;37mSreca +20%\nDisciplina -5%\nTezina -0.1 kg\n"; sleep(1); } if ( c == 51 ) {pet.leci(); system("clear"); cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m * \n" <<"\033[01;37mZdravlje +20%\n"; sleep(1); } if ( c == 52 ) { normal(); int vrsta, k=1; float kolichina=5; while (k){ system("clear"); cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"\033[01;37mVrsta literature:\n(1) \033[22;37mStephen Hawking\n\033[01;37m(2) \033[22;37mOET\n\033[01;37m(3) \033[22;37mMata\n\n"; cin>>vrsta; switch(vrsta){ case (1): kolichina=10;k=0; system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"Nauka +10%\nSreca -5%\n";sleep(1);break; case (2): kolichina=30;k=0; system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"Nauka +30%\nSreca -15%\n";sleep(1);break; case (3): kolichina=20;k=0; system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n" <<"Nauka +20%\nSreca -10%\n";sleep(1);break; default: system("clear");cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m *\033[01;37m \n"<<"Nepostojeci izbor!\n";sleep(1); } } pet.nauka(kolichina); cbreak(); } if ( c == 53 ) { normal(); system("clear"); cout<<"\033[22;31m* \033[22;37mAJgotchi by Alojz Jakob\033[22;31m * \n\033[01;37m"<<"Budjenje za (u minutima): "; int i; cin>>i;cout<