Botões e programa

Acabei de fazer outro tipo de programação.
Ela está funcionando para 1 questao.
Mas nao sei como fazer para passar para uma proxima.

Sei que ficou bem longo e deve ter uma maneira mais prática de fazer, mas nao sei como.
Desta maneira, ele resolve todas as possibilidades para a Questao 1, mas nao sei passar para a Questao 2 e assim sucessivamente e calcular a nota.

Segue:

// Respostas corretas de cada Questão

char Q1 = 'B'; // Questão 1
char Q2 = 'B'; // Questão 2
char Q3 = 'C'; // Questão 3
char Q4 = 'D'; // Questão 4
char Q5 = 'A'; // Questão 5
char Q6 = 'A'; // Questão 6
char Q7 = 'A'; // Questão 7
char Q8 = 'A'; // Questão 8


int ledverde = 11; // pino do led verde
int ledverm = 10;// pino do led vermelho
int buzzer = 9; // pino do buzzer
int botaoA = 8; // pino do botao referente a alternativa A
int botaoB = 7; // pino do botao referente a alternativa B
int botaoC = 6; // pino do botao referente a alternativa C
int botaoD = 5; // pino do botao referente a alternativa D
int acertos = 0;

  
void setup()
{
pinMode(11, OUTPUT); //define pino 11 como saída
pinMode(10, OUTPUT); //define pino 10 como saída
pinMode(9, OUTPUT); //define pino 9 como saída
pinMode(7, INPUT); //define pino 7 como entrada
pinMode(6, INPUT); //define pino 6 como entrada
pinMode(5, INPUT); //define pino 5 como entrada
pinMode(4, INPUT); //define pino 4 como entrada
}

void loop()
{
  botaoA = digitalRead(7); // recebe a leitura do botão
  if (botaoA == HIGH and Q1=='A'){ // condição
    digitalWrite(11, HIGH); // acende led verde
    digitalWrite(10, LOW); // apaga led vermelho
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    acertos=+1; // soma 1 para a lista de acertos
    digitalWrite(11, LOW); // apaga o led aceso
    
  }
    if (botaoA == HIGH and Q1!='A'){ // condição
    digitalWrite(11, LOW); // apaga led verde
    digitalWrite(10, HIGH); // acende led vermelho
    tone(9, 440, 100); // toca o som se a resposta for errada
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    digitalWrite(10, LOW); // apaga o led aceso
  }
  botaoB = digitalRead(6); // recebe a leitura do botão
  if (botaoB == HIGH && Q1=='B') { // condição
    digitalWrite(11, HIGH); // acende led verde
    digitalWrite(10, LOW); // apaga led vermelho
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    acertos=+1; // soma 1 para a lista de acertos
    digitalWrite(11, LOW); // apaga o led aceso
    
  }
      if (botaoB == HIGH and Q1!='B'){ // condição
    digitalWrite(11, LOW); // apaga led verde
    digitalWrite(10, HIGH); // acende led vermelho
    tone(9, 440, 100); // toca o som se a resposta for errada
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    digitalWrite(10, LOW); // apaga o led aceso
  }
  botaoC = digitalRead(5); // recebe a leitura do botão
  if (botaoC == HIGH && Q1=='C') { // condição
    digitalWrite(11, HIGH); // acende led verde
    digitalWrite(10, LOW); // apaga led vermelho
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    acertos=+1; // soma 1 para a lista de acertos
    digitalWrite(11, LOW); // apaga o led aceso
    
  }
      if (botaoC == HIGH and Q1!='C'){ // condição
    digitalWrite(11, LOW); // apaga led verde
    digitalWrite(10, HIGH); // acende led vermelho
    tone(9, 440, 100); // toca o som se a resposta for errada
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    digitalWrite(10, LOW); // apaga o led aceso
  }
  botaoD = digitalRead(4); // recebe a leitura do botão
  if (botaoD == HIGH && Q1=='D') { // condição
    digitalWrite(11, HIGH); // acende led verde
    digitalWrite(10, LOW); // apaga led vermelho
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    acertos=+1; // soma 1 para a lista de acertos
    digitalWrite(11, LOW); // apaga o led aceso
    
  }
      if (botaoD == HIGH and Q1!='D'){
    digitalWrite(11, LOW); // apaga led verde
    digitalWrite(10, HIGH); // acende led vermelho
    tone(9, 440, 100); // toca o som se a resposta for errada
    delay(100); // Resposta ao botão fica ativa 100 milisegundos
    digitalWrite(10, LOW); // apaga o led aceso
  }
}