#include #include using namespace std; enum class SizeT:char {TINY, SMALL, MEDIUM, LARGE, HUGE, GARGANTUAN, NONE}; const size_t SIZES {static_cast(SizeT::NONE)}; string SizeTToString(SizeT size); int SizeDifference(SizeT first, SizeT second); SizeT RandomSize(); string FindAction(int diff); int main() { SizeT one{SizeT::TINY}, two = SizeT::TINY; int i; int sizeDifference; for(i = 0; i < 10; i++) { one = RandomSize(); two = RandomSize(); sizeDifference = SizeDifference(one,two); cout << "A " << SizeTToString(one) << " critter meets a " << SizeTToString(two) << " critter." << endl; cout << "\tThe difference in sizes is " << sizeDifference << "." << endl; cout << "\tSo the critters " << FindAction(sizeDifference) << "." << endl; cout << endl; } return 0; } string FindAction(int diff) { string action; if (diff == 0) { action = "make friends"; } else if (diff == 1) { action = "look at each other in amazement"; } else { action = "fail to notice each other"; } return action; } int SizeDifference(SizeT first, SizeT second){ int firstSize, secondSize; firstSize = static_cast(first); secondSize = static_cast(second); return abs(firstSize-secondSize); } SizeT RandomSize() { int i = rand() % SIZES; return static_cast(i); } string SizeTToString(SizeT size){ string name{"unknown"}; if (size == SizeT::TINY) { name = "tiny"; } else if (size == SizeT::SMALL) { name = "small"; } else if (size == SizeT::MEDIUM) { name = "medium"; } else if (size == SizeT::LARGE) { name = "large"; } else if (size == SizeT::HUGE) { name = "huge"; } else if (size == SizeT::GARGANTUAN) { name = "gargantuan"; } return name; }