programma non va

e qui la parte che da problemi

void gioco()
{ 

  while(d==0)
  {
    premuto1=analogRead(button1);
    premuto2=analogRead(button2);
    premuto3=analogRead(button3);
    a=analogRead(button1);
    b=analogRead(button2);
    c=analogRead(button3);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("benvenuti");
    lcd.setCursor(0,1);
    lcd.print("nell'arduquiz");
    delay(5000);
    lcd.clear();
    lcd.print("istruzioni");
    delay(2500);
    lcd.clear();
    lcd.print("tasto 3");
    lcd.setCursor(0,1);
    lcd.print("saltare la domanda");
    delay(2500);
    lcd.clear();
    lcd.print("gli altri 2 servono ");
    lcd.setCursor(0,1);
    lcd.print("per indicare le risposte");
    delay(2500);
    lcd.clear();
    lcd.print("risposta giusta");
    lcd.setCursor(0,1);
    lcd.print("+1000 punti");
    delay(2000);
    lcd.clear();
    lcd.print("risposta sbagliata");
    lcd.setCursor(0,1);
    lcd.print("- 150 punti");
    delay(2000);
    lcd.clear();
    lcd.print("risposta saltata");
    lcd.setCursor(0,1);
    lcd.print("+ 0 punti");
    delay(2000);
    lcd.clear();
    lcd.print("per ricominciare");
    lcd.setCursor(0,1);
    lcd.print("tasto reset");
    delay(2000); 
    lcd.clear();
    lcd.print("ogni domanda resta");
    lcd.setCursor(0,1);
    lcd.print("scritta x 5s");
    delay(2000);
    lcd.clear();
    lcd.print("sono gentile e ");
    lcd.setCursor(0,1);
    lcd.print("ti regalo un punto");
    delay(2000);
    lcd.clear();
    lcd.print("tasto 1 per iniziare");
    delay(1000);
    while(!(premuto1>=600))
    {
      premuto1=analogRead(button1);
      premuto2=analogRead(button2);
      premuto3=analogRead(button3);
      a=analogRead(button1);
      b=analogRead(button2);
      c=analogRead(button3);
    }
    if(premuto1>=600)
    {
      lcd.clear();
      lcd.print("ok allora iniziamo :)");
      delay(2000);
      lcd.clear();
      lcd.print("3....");
      delay(1000);
      lcd.clear();
      lcd.print("2.....");
      delay(1000);
      lcd.clear();
      lcd.print("1.........");
      delay(1000);
      lcd.clear();
      lcd.print("viaaaaaaaaaa :)");
      delay(500);
      lcd.clear();
      lcd.print("quale e' la");
      lcd.setCursor(0,1);
      lcd.print("capitale d'Italia");
      delay(5000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("tasto 1 = Roma");
      lcd.setCursor(0,1);
      lcd.print("tasto 2 = Milano");
      delay(1000);
      a=0;
      b=0;
      c=0;
      while (! ((a>=600) || (b>=600) || (c>=600))){
        premuto1=analogRead(button1);
        premuto2=analogRead(button2);
        premuto3=analogRead(button3);
        a=analogRead(button1);
        b=analogRead(button2);
        c=analogRead(button3);
      }
      if(premuto1>600)
      {
        punteggio+1000;    // qui non da i punti
        punteggio2=punteggio;
      }
      if(premuto2>=600)
      {
        punteggio=punteggio - 150;
        punteggio2=punteggio;
      }
      if(premuto3>=600);
      {
        punteggio=punteggio + 1;
      }
      lcd.clear();
      lcd.print("punteggio");
      lcd.setCursor(0,1);
      lcd.print(punteggio);
      delay(1000);
      lcd.clear();
      lcd.print("quale e' la capitale");
      lcd.setCursor(0,1);
      lcd.print("dell'India");
      delay(5000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("tasto 1 = guarana'");
      lcd.setCursor(0,1);
      lcd.print("tasto 2 = New Delhi");
      delay(1000);
      while (! ((a>=600) || (b>=600) || (c>=600))){     // da qui in poi non si ferma più ad aspettare la risposta
        premuto1=analogRead(button1);
        premuto2=analogRead(button2);
        premuto3=analogRead(button3);
        a=analogRead(button1);
        b=analogRead(button2);
        c=analogRead(button3);
      }
      if(premuto1==HIGH)
      {
        punteggio=punteggio - 150;
        punteggio2=punteggio;
      }
      if(premuto2==HIGH)
      {
        punteggio=punteggio + 1000;
        punteggio2=punteggio;
      }
      if(premuto3==HIGH)
      {
        punteggio=punteggio + 0;
        punteggio2=punteggio;
      }
      lcd.print("punteggio");
      lcd.setCursor(0,1);
      lcd.print(punteggio); 
      delay(1500);
      lcd.clear();
      lcd.print("quanto fa");
      lcd.setCursor(0,1); 
      lcd.print("1+1-1x1:1");
      delay(5000);
      lcd.print("tasto 1=0");
      lcd.setCursor(0,1);
      lcd.print("tasto 2=1");
      while (! ((a>=600) || (b>=600) || (c>=600))){
        premuto1=analogRead(button1);
        premuto2=analogRead(button2);
        premuto3=analogRead(button3);
        a=analogRead(button1);
        b=analogRead(button2);
        c=analogRead(button3);
      }
      if(premuto1>600);
      {
        punteggio=punteggio-150;
      }
      if(premuto2>600);
      {
        punteggio=punteggio+1000;
      }
      if(premuto3>600)
      {
        punteggio=punteggio+0;
      }
      lcd.clear();
      lcd.print("punteggio");
      lcd.setCursor(0,1);
      lcd.print(punteggio);
      delay(1000);
      lcd.clear();
    }
  }
  if(premuto1<600)
  {
    delay(10);
  }
}

ho dovuto inserire il codice in 2 risposte perchè era troppo lungo :blush: