#include #include "PrizeT.h" #include "StickerCollectionT.h" #include #include "CoachT.h" using namespace std; CoachT::CoachT(int stickerCount): stickers(stickerCount){} void CoachT::AddPrize(PrizeT prize){ prizes.push_back(prize); } void CoachT::AddSticker(size_t id, int quantity){ stickers.ChangeSticker(id, quantity); } int PrizeTotal(const PrizeT & prize, StickerCollectionT & stickers) { int winnings{0}; bool first{true}; int minStickers{0}; for(auto sticker: prize.Stickers()) { if (first) { minStickers = stickers.GetStickerCount(sticker); first = false; } else { minStickers = min(minStickers, stickers.GetStickerCount(sticker)); } } for(auto sticker: prize.Stickers()) { stickers.ChangeSticker(sticker, -minStickers); } winnings = minStickers * prize.Prize(); return winnings; } int CoachT::CalculateWinnings(){ int winnings{0}; for (auto prize: prizes) { winnings += PrizeTotal(prize, stickers); } return winnings; }