SOURCE FILE: candyClmnTD_L3.cpp



#include<iostream>

using namespace std ;
 
void PrintInfoForUser() ;
int GetUserValue () ;
bool IsBadValue (int value);
void PrintErrorMessage (int badValue) ;
void MakeCandyColumn (int numCandies) ;

int main()
{
  PrintInfoForUser() ;
  int numM = GetUserValue() ;
  if   ( IsBadValue(numM) ) 
         PrintErrorMessage(numM) ;
  else   MakeCandyColumn(numM) ; 
  return 0 ;
}

void PrintInfoForUser() 
{
  cout << "\nThis program has a sweet theme.\n" ;
  cout << "It uses ASCII art to make a column of candy. You may\n" ;
  cout << "request a column containing between 1 and 6 M candies.\n\n" ;
}

int GetUserValue () 
{
   int value ;
   cout << "How many Ms would you like to see? ===> " ;
   cin >> value ;
   return value ; 
}

bool IsBadValue (int value)
{
  if   ( (value < 1 ) || (value > 6) )
       return true ;
  else return false ; 
}

void PrintErrorMessage (int badValue ) 
{
   cout << endl ;
   if       ( badValue < 0 ) 
             cout << "Negative: bad value.\n" ;
   else if  ( badValue == 0 ) 
            cout << "Zero: bad value.\n" ;
   else     /* case where badValue > 6 */
            cout << "More than six: bad value.\n" ;  
   cout << endl ;
}

void MakeOneM () ;
void MakeBase() ;

void MakeCandyColumn (int numCandies) 
{
   cout << endl ;
   for (int i = 1; i<=numCandies; i++) 
       MakeOneM() ;

   MakeBase() ;
   cout << endl ;
}

void MakeOneM () 
{
   cout << "                      _..._\n" ;
   cout << "                    .'_   _'.\n" ;
   cout << "                   / (.) (.) \\\n" ;
   cout << "              _.-._| ,_____. |_.-._ \n" ;
   cout << "             (== |-\\    '-'  /-| ==)\n" ;
   cout << "              `\"`   '.__M__.'   `\"`\n" ;
   cout << "                   __//   \\\\__\n" ;
   cout << "             jgs  (___)   (___)\n" ;
}

void MakeBase() 
{
   cout << "                 ===============\n" ;
   cout << "              =====================\n" ;
   cout << "           ===========================\n" ;
   cout << "        =================================\n" ;
}