Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class GuessStatisticsMessage
- {
- public:
- GuessStatisticsMessage() = default;
- ~GuessStatisticsMessage() = default;
- std::string make(char candidate, int count);
- private:
- void createPluralDependentMessageParts(int count);
- void createThereAreManyLetters(int count);
- void createThereIsOneLetter();
- void createThereAreNoLetters();
- std::string number;
- std::string verb;
- std::string pluralModifier;
- };
- std::string GuessStatisticsMessage::make(char candidate, int count)
- {
- createPluralDependentMessageParts(count);
- return fmt::format("There {} {} {}{}", verb, number, candidate, pluralModifier);
- }
- void GuessStatisticsMessage::createPluralDependentMessageParts(int count)
- {
- if (count == 0) {
- createThereAreNoLetters();
- } else if (count == 1) {
- createThereIsOneLetter();
- } else {
- createThereAreManyLetters(count);
- }
- }
- void GuessStatisticsMessage::createThereAreManyLetters(int count)
- {
- verb = "are";
- number = std::to_string(count);
- pluralModifier = "s";
- }
- void GuessStatisticsMessage::createThereIsOneLetter()
- {
- verb = "is";
- number = "one";
- pluralModifier = "";
- }
- void GuessStatisticsMessage::createThereAreNoLetters()
- {
- verb = "are";
- number = "no";
- pluralModifier = "s";
- }
- class GuessStatisticsMessageAlt
- {
- public:
- GuessStatisticsMessageAlt() = default;
- ~GuessStatisticsMessageAlt() = default;
- std::string make(char candidate, int count);
- private:
- struct MessageComponents
- {
- std::string verb;
- std::string number;
- std::string pluralModifier;
- };
- MessageComponents createPluralDependentMessageParts(int count);
- MessageComponents createThereAreManyLetters(int count);
- MessageComponents createThereIsOneLetter();
- MessageComponents createThereAreNoLetters();
- };
- std::string GuessStatisticsMessageAlt::make(char candidate, int count)
- {
- auto messageComponents = createPluralDependentMessageParts(count);
- return fmt::format("There {} {} {}{}", messageComponents.verb, messageComponents.number,
- candidate, messageComponents.pluralModifier);
- }
- GuessStatisticsMessageAlt::MessageComponents GuessStatisticsMessageAlt::createPluralDependentMessageParts(int count)
- {
- if (count == 0) {
- return createThereAreNoLetters();
- } else if (count == 1) {
- return createThereIsOneLetter();
- } else {
- return createThereAreManyLetters(count);
- }
- }
- GuessStatisticsMessageAlt::MessageComponents GuessStatisticsMessageAlt::createThereAreManyLetters(int count)
- {
- return { "are", std::to_string(count), "s" };
- }
- GuessStatisticsMessageAlt::MessageComponents GuessStatisticsMessageAlt::createThereIsOneLetter()
- {
- return { "is", "one", "" };
- }
- GuessStatisticsMessageAlt::MessageComponents GuessStatisticsMessageAlt::createThereAreNoLetters()
- {
- return { "are", "no", "s" };
- }
- std::string makeGuessStatisticsMessage(char candidate, int count);
- namespace {
- struct MessageComponents
- {
- std::string verb;
- std::string number;
- std::string pluralModifier;
- };
- MessageComponents createThereAreManyLetters(int count)
- {
- return { "are", std::to_string(count), "s" };
- }
- MessageComponents createThereIsOneLetter()
- {
- return { "is", "one", "" };
- }
- MessageComponents createThereAreNoLetters()
- {
- return { "are", "no", "s" };
- }
- MessageComponents createPluralDependentMessageParts(int count)
- {
- if (count == 0) {
- return createThereAreNoLetters();
- }
- else if (count == 1) {
- return createThereIsOneLetter();
- }
- else {
- return createThereAreManyLetters(count);
- }
- }
- }
- std::string makeGuessStatisticsMessage(char candidate, int count)
- {
- auto messageComponents = createPluralDependentMessageParts(count);
- return fmt::format("There {} {} {}{}", messageComponents.verb, messageComponents.number,
- candidate, messageComponents.pluralModifier);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement