#ifndef SIMON_H #define SIMON_H #define MAX_SEQUENCE_LENGTH 25//Feel free to change this; I figured this is enough to make it fun enum SimonColor {Green=0, Red=1, Yellow=2, Blue=3}; class Simon { public: Simon(); void Initialize(); int GetSequenceLength() const; int GetCurrentLocation() const; SimonColor GetIndexColor(int i) const; void StartSequence(); void TookTooLong(); bool Touched(SimonColor c);//False means cannot progress any further (either reached end of sequence or won/lost) bool IsGameOver() const; bool DidWrongButton() const; bool DidTakeTooLong() const; bool DidWin() const; protected: SimonColor m_arrSequence[MAX_SEQUENCE_LENGTH]; int m_nCurrentLength;//Length at in sequence int m_nLocation;//Where at with sequence enum {GameInProgress, YouPressedWrongButton, YouTookTooLong, YouWon} m_eGameStatus; }; #endif