Simon Game Help

I used while(Serial.available() == 0) to do nothing and removed the switch statement. But I'm still having problems with the code.

It waits for the user input, and then checks to see if the userString and gameString are equal to each other.
Even when I enter the correct sequence, the game will end.

#define A3  220 //Red tone
#define G4  392 //Yellow tone
#define C4  262 //Green tone

int sequence[100];
int largestIndex = 0;
int score = 0;
boolean gameOver = false;

void setup() {
  // put your setup code here, to run once:
  pinMode(16, OUTPUT);  //Red LED
  pinMode(14, OUTPUT);  //Yellow LED
  pinMode(13, OUTPUT);  //Green LED
  pinMode(12, OUTPUT);  //Speaker
  Serial.begin(115200);
}

String showSequence()
{
  String gameSequence = "";
  sequence[largestIndex] = random(0, 3);
  largestIndex++;

  for (int index = 0; index < largestIndex; index++)
  {
    if (sequence[index] == 0)
    {
      delay(300);
      digitalWrite(16, HIGH);
      delay(650);
      tone(12, A3);
      delay(50);
      noTone(12);
      digitalWrite(16, LOW);
      gameSequence += "r";
    }

    if (sequence[index] == 1)
    {
      delay(300);
      digitalWrite(14, HIGH);
      delay(650);
      tone(12, G4);
      delay(50);
      noTone(12);
      digitalWrite(14, LOW);
      gameSequence += "y";
    }

    if (sequence[index] == 2)
    {
      delay(300);
      digitalWrite(13, HIGH);
      delay(650);
      tone(12, C4);
      delay(50);
      noTone(12);
      digitalWrite(13, LOW);
      gameSequence += "g";
    }
  }
  return gameSequence;
}

void readSequence()
{
  String userSequence = "";
  Serial.println("Repeat the sequence. Enter one char at a time (r for red, y for yellow, and g for green)");

  for (int index = 0; index < largestIndex; index++)
  {
    while (Serial.available() == 0) //check to see if something came in the serial port
    {

    }
    char a = Serial.read(); //if so, read it
    String led = String(a);
    Serial.println(a);
    userSequence += led;
  }

  if (userSequence.equals(showSequence()))
  {
    Serial.println("Correct!");
    score++;
  }
  else
  {
    String totalScore = String(score);
    Serial.println("Incorrect!");
    Serial.println("Your score is " + totalScore + "!");
    gameOver = true;
  }
}

void loop() {
  // put your main code here, to run repeatedly:
  while (!gameOver)
  {
    showSequence();
    readSequence();
  }
}