We have to write this code for class, but I am getting an out-of-range error from the part of code below. It is supposed to be like a simon-says thing, where the letter you have to type in is the same. The exact error I'm getting is:
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::at: __n (which is 1) >= this->size() (which is 1)
Abort (core dumped).
#include <iostream>                     // for I/O
#include <cstring>                      // for strlen()
#include <cstdlib>                      // for random numbers
#include <unistd.h>                     // for sleep()
using namespace std;
int main(int argc, char **argv) {
    const int DEFAULT_NUMBER_OF_ROUNDS = 15;
    int       numRounds = DEFAULT_NUMBER_OF_ROUNDS;
    // if a command line argument is given, use that string to init the
    // "random" sequence and set the number of rounds to play the game
    if (argc == 2) {
        numRounds = strlen(argv[1]);
    }
    string    s;                         // A string used to pause the game
    char     *seq = new char[numRounds]; // Sequence of numRounds colors to match
    char      colors[] = "RGBY";         // Allowable colors
    bool      lost = false;              // Indicates whether we win or lose
    int       round;                     // Indicates the current round
    // Initialize random number generator
    srand(time(0));
    // Determine the random color sequence using either argv[1] or
    // randomly determined letters from 'R', 'G', 'B', and 'Y'
    for (int j = 0; j < numRounds; j++) {
        seq[j] = (argc == 2) ? argv[1][j] : colors[rand() % 4];
    }
    // Wait until the player is ready
    cout << "Welcome to Simon, press enter to play .... ";
    getline(cin, s, '\n');
    //code
    string input;
    cout << flush;
    int I;
    round = 1;
    while(!lost){
        for(i = 0 ; i < round; i++){
            cout << "Simon says: " << seq[i] << flush;
            sleep(1);
            cout << "\010." << flush << endl;
        }
        cout << "Please enter " << round << " characters to match ";
        cin >> input;
        if (numRounds <= round){
            cout << "you won" << endl;
        }
        for(i = 0; i < round; i++);{
            if(input.at(i) != seq[i]){
                lost = true;
            }
        }
        cout << "you lost" << endl;
        cout << "the correct sequence was ";
        for(int i = 0; i < round; i++){
            cout << seq[I];
        }
        return 0;
    }
}
 
    