#include "takim.h" #include "gerec.h" #include #include #include #include using namespace std; void Takim::ekle(Oyuncu * oyuncu) { oyuncular_.push_back(oyuncu); } void Takim::yeniOyun() { puanlar_.clear(); } void Takim::yeniEl() { puanlar_.push_back(ElPuani()); } bool Takim::kazan(Deste & yer) { bool pisti = puanlar_.back().ekle(yer); /* Kapali kagitlari oyunculara goster. Eger varsa, bunlar destenin basindadir. */ for (KagitErisici kagit = yer.begin(); kagit->durum() == Kagit::kapali; ++kagit) { for (size_t oyuncu = 0; oyuncu != oyuncular_.size(); ++oyuncu) { oyuncular_[oyuncu]->gor(*kagit); } } yer.clear(); return pisti; } int Takim::puan() const { int toplam = 0; for (size_t i = 0; i != puanlar_.size(); ++i) { toplam += puanlar_[i].puan(); } return toplam; } ostream & operator<< (ostream & cikis, Takim const & takim) { vector oyuncuAdlari; transform(takim.oyuncular_.begin(), takim.oyuncular_.end(), back_inserter(oyuncuAdlari), mem_fun(&Oyuncu::ad)); toplulukYazdir(oyuncuAdlari, cikis, "+"); return cikis << ": " << takim.puan(); }