#ifndef EKLENDI_DUZEY_H_ #define EKLENDI_DUZEY_H_ #include #include #include // Oyuncularin ne duzey(ler)de becerili pisti oynadiklarini // belirler enum Duzey { Duzey_ilk, Duzey_insanaSoran = Duzey_ilk, Duzey_rastgeleAtan, Duzey_tutanKagitci, Duzey_valeci, Duzey_soldakineDikkatEden, Duzey_kagitSayici, Duzey_degerliKagitci, Duzey_degerliKagitEsci, Duzey_uzman, Duzey_son }; size_t const toplamDuzey = Duzey_son - Duzey_ilk; // Her bir dusunce duzeyinin (seceneginin) nasil // yazdirilacagini belirler std::ostream & operator<< (std::ostream &, Duzey const &); // Her dusunce yetenegine karsilik bir karakter // bulunuyor. // // Ornegin bu aciklamanin yazildigi siralarda '1' karakteri, // 'Rastgele kagit atsin' dusunce secegine karsilik // geliyordu. char dusunceSecenegiKarakteri(int duzey); // // Bilgisayarin en iyi oynadigi duruma karsilik gelen // // secenekler // string uzmanDusunceSecenekleri(); // string insanDusunceSecenekleri(); // // Ornek bir secenek karakter dizisi olusturur // string ornekDusunceSecenegi(); // bool dusunceSecenekleriniDogrula(string const & secenekler); // void dusunceBilgiSatiri(char karakter); // void dusunceBilgiBasligi(); // void dusunceSecenekleriniBildir(); // Verilen karakter secimine karsilik bir duzey degeri // dondurur Duzey dusunceYap(char secenek); std::string dusunceSeceneginiOku(std::string const & oyuncuAdi, std::string const & yer); // Bastan sona butun secenekleri gezerek 'haricler' icinde // olmayanlarin hepsini kullanir template std::string dusunceSecenekleriOlustur(int const (&haricler)[N]) { std::string secenekler; int const * const son = haricler + toplamOge(haricler); for (int duzey = Duzey_ilk; duzey != Duzey_son; ++duzey) { if (std::find(haricler, son, duzey) == son) { secenekler.push_back( dusunceSecenegiKarakteri(duzey)); } } return secenekler; } #endif // EKLENDI_DUZEY_H_