Stonybrook University MEC 101 HW#10 Programming Help

the code I posted on my first post was the instructors the one below is mine

/*
1. when the left switch is hit by an obstacle, the robot 
reverses (call reverse() function) for 5 seconds, 
turns right for 5 seconds and then continues to move forward. 
Do the same when the right switch is hit, except this time have 
the bot turn left. 
2.  During the time when the robot reverses, 
have an LED mounted visibly high flash rapidly. 
3.3.  Next, follow this tutorial at
https://learn.adafruit.com/adafruit-arduino-lesson-10-making-sounds 
to program your Piezo buzzer to play a tone while reversing.
*/
byte userInput = 0;
int motorspeed1 = 3;
int motorspeed2 = 6;
int forward1 = 8;
int forward2 = 9;
int reverse1 = 5;
int reverse2 = 10;
int leftlimitSwitch=4;
int rightlimitSwitch=7;
int BUTTON_PIN;
int buttonState=13;
int speakerPin = 12;
int numTones = 10;
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
//            mid C  C#   D    D#   E    F    F#   G    G#   A

void setup() 
{
pinMode(motorspeed1, OUTPUT);
pinMode(motorspeed2, OUTPUT);
pinMode(forward1, OUTPUT);
pinMode(forward2, OUTPUT);
pinMode(reverse1, OUTPUT);
pinMode(reverse2, OUTPUT);
pinMode(13, OUTPUT);
pinMode(BUTTON_PIN, INPUT);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
Serial.begin(9600);
}

void forward(int ocr) 
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(forward1, HIGH);
digitalWrite(forward2, HIGH);
digitalWrite(reverse1, LOW);
digitalWrite(reverse2, LOW);
}

void reverse(int ocr) 
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(reverse1, HIGH);
digitalWrite(reverse2, HIGH);
digitalWrite(forward1, LOW);
digitalWrite(forward2, LOW);
}

void left(int ocr) 
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(reverse1, HIGH);
digitalWrite(reverse2, LOW);
digitalWrite(forward1, LOW);
digitalWrite(forward2, HIGH);
}

void right(int ocr) 
{
analogWrite(motorspeed1, ocr);
analogWrite(motorspeed2, ocr);
digitalWrite(reverse2, HIGH);
digitalWrite(reverse1, LOW);
digitalWrite(forward2, LOW);
digitalWrite(forward1, HIGH);
}

void breaking() 
{
digitalWrite(motorspeed1, HIGH);
digitalWrite(motorspeed2, HIGH);
digitalWrite(reverse2, LOW);
digitalWrite(reverse1, LOW);
digitalWrite(forward2, LOW);
digitalWrite(forward1, LOW);
}

void accelerate(int i)
{
 forward(0);
 for(int i=0; i<255; i++)
 {
 analogWrite(motorspeed1, i);
 analogWrite(motorspeed2, i);
 delay(10);
} 
}
void decelerate(int i)
{
 forward(0);
 for(int i=255; i> 0 ; i = i--)
{
 analogWrite(motorspeed1, i);
 analogWrite(motorspeed2, i);
 delay(10);

} 
}

void loop() 
{   
forward(200); // both motor turn on
delay(5000);  // turn off both motors
left(200);    // turn on left motor
delay(5000);
reverse(200);
delay(5000);
right(200);
delay(5000);
accelerate(250);
delay(4500);
decelerate(250);
delay(4500);
buttonState = digitalRead(BUTTON_PIN);
Serial.print (buttonState);
 
//Go forward
 if (userInput == '1') { 
   Serial.println(" moving in...");
   while(digitalRead(leftlimitSwitch) != LOW){
     reverse(200);
   }
   Serial.println(" done");    
 }

 //Go back
 if (userInput == '2'){
   Serial.println(" moving out...");
   while(digitalRead(rightlimitSwitch) != LOW){
     reverse(200);
   }
   Serial.println(" done");
 }
 userInput = 0;
}