// Need to print brain activity/state #include // Provides enumerated types and function prototypes for Brain #include "brain.h" using namespace std; void Brain::Reset(BrainState newstate) { // Member functions are given access to private data members state = newstate; switch (state) { case PEACE: activity = RESTING; break; case CURIOUS: activity = OBSERVING; break; case BEFUDDLED: activity = CONCENTRATING; break; case UNDERSTANDING: activity = REFLECTING; break; case SOLIDIFIED: activity = RELAXING; break; default: // Something went seriously wrong --- take drastic measures! assert(false); break; } return; } void Brain::Print(void) { // Print the current brain activity switch (activity) { case RESTING: cout << "Resting, "; break; case OBSERVING: cout << "Observing, "; break; case CONCENTRATING: cout << "Concentrating, "; break; case REFLECTING: cout << "Reflecting, "; break; case RELAXING: cout << "Observing, "; break; default: // Something went seriously wrong --- take drastic measures! assert(false); break; } // Print the current brain state switch (state) { case PEACE: cout << "At peace"; break; case CURIOUS: cout << "Curious"; break; case BEFUDDLED: cout << "Befuddled"; break; case UNDERSTANDING: cout << "Understanding"; break; case SOLIDIFIED: cout << "Solidified"; break; default: // Something went seriously wrong --- take drastic measures! assert(false); break; } // It's all over but the newline cout << endl; return; } void Brain::NextActivity(void) { switch( activity ) { case RESTING: if (state == CURIOUS) { activity = OBSERVING; } break; case OBSERVING: if (state == BEFUDDLED) { activity = CONCENTRATING; } break; case CONCENTRATING: if (state == UNDERSTANDING) { activity = REFLECTING; } break; case REFLECTING: if (state == SOLIDIFIED) { activity = RELAXING; } break; case RELAXING: if (state == PEACE) { activity = RESTING; } break; default: break; } return; } void Brain::NextState(void) { switch( state) { case PEACE: if (activity == RESTING) { state = CURIOUS; } break; case CURIOUS: if (activity == OBSERVING) { state = BEFUDDLED; } break; case BEFUDDLED: if (activity == CONCENTRATING) { state = UNDERSTANDING; } break; case UNDERSTANDING: if (activity == REFLECTING) { state = SOLIDIFIED; } break; case SOLIDIFIED: if (activity == RELAXING) { state = PEACE; } break; default: break; } return; }