#pragma once #include const std::string PART_NAMES[] {"body", "head", "leg", "antenna", "eye", "mouth", "none"}; const int PART_COUNTS[] = {1, 1, 6, 2, 2, 1}; enum class BodyPartT: size_t {BODY, HEAD, LEG, ANTENNA, EYE, MOUTH, NONE}; const BodyPartT FIRST_BODY_PART{BodyPartT::BODY}; std::string BodyPartTToString(BodyPartT b); BodyPartT NextBodyPartT(BodyPartT b); std::ostream & operator << (std::ostream & s , const BodyPartT & b); BodyPartT operator + (BodyPartT a, size_t b); BodyPartT & operator ++(BodyPartT & b); // ++i BodyPartT operator ++(BodyPartT & b, int); // i++ BodyPartT & operator += (BodyPartT & a, size_t b); BodyPartT operator -(BodyPartT b);