#include "oyuncu.h" #include "takim.h" #include "sabit.h" #include "gerec.h" #include "davranis.h" #include #include #include #include using namespace std; string kesikSagaDayaliAd(string const & ad) { ostringstream cikis; cikis.setf(ios::right); cikis << setw(gorunenAdUzunlugu) << ad.substr(0, gorunenAdUzunlugu); return cikis.str(); } string fikirAgirliklari(Fikir const & fikir, Deste const & el) { ostringstream cikis; cikis << " {"; for (size_t i = 0; i != el.size(); ++i) { cikis << ' ' << el[i] << '=' << fikir[i]; } cikis << " }"; return cikis.str(); } Oyuncu::Oyuncu(string const & ad, string const & yer, Takim & takim, DusunceZinciri const & dusunceZinciri) : ad_(ad), yer_(yer), takim_(&takim), dusunceZinciri_(dusunceZinciri), insan_(dusunceZinciri.insanBarindirir()) { takim_->ekle(this); } bool Oyuncu::insan() const { return insan_; } string const & Oyuncu::ad() const { return ad_; } string const & Oyuncu::yer() const { return yer_; } void Oyuncu::yeniEl(Deste const & el) { dusunceZinciri_.yeniEl(); el_ = el; for (size_t i = 0; i != el.size(); ++i) { gor(el_[i]); } } void Oyuncu::yeniDeste() { dusunceZinciri_.yeniDeste(); } pair Oyuncu::kagitSec(Deste const & yer) { Fikir fikir = { 0 }; dusunceZinciri_.fikirBildir(fikir, el_, yer); if (kararAsamasiniGoster) { cout << fikirAgirliklari(fikir, el_); } return enIyiKagit(fikir, el_); } string Oyuncu::satirBasi() const { ostringstream cikis; cikis << kesikSagaDayaliAd(ad()) << dusunceZinciri_.satirBasi(el_); return cikis.str(); } void Oyuncu::cikart(KagitErisici kagit) { for (Deste::iterator i = el_.begin(); i != el_.end(); ++i) { if (*i == *kagit) { el_.erase(i); break; } } } Takim & Oyuncu::takim() { return *takim_; } void Oyuncu::gor(Kagit const & kagit) { if (kagitSaymayiGoster) { string kesikAd = ad(); kesikAd.resize(8, ' '); cout << '\n' << kesikAd << "cikan:"; } dusunceZinciri_.gor(kagit); } void Oyuncu::solundakiAlmadi(Kagit const & kagit) { dusunceZinciri_.solundakiAlmadi(kagit); }