Problem with my sumo robot

My robot must stay in the ring that has a white edge, I wrote my program but it isn't working. I am using a black-white sensor(Arduino-Avoidance-Reflective-black-white-line-tracing-sensor-Robot-Smart-Car)
It is consisted of arduino uno, 2 motordrives(L9110 H-bridge), 4 Light sensors , and 4 motors.
the problem is that the robot is reading the white edge but keeps moving forwards and my program orders the robot to reverse
here is my code:

int DC1=6;
int DC2=5;
int DC3=9;
int DC4=10;

int BWFL=12; // BW = clack and white sensor
int BWBR=3;
int BWBL=11;
int BWFR=4;

void setup()
{
  pinMode(DC1,OUTPUT);
  pinMode(DC2,OUTPUT);
  pinMode(DC3,OUTPUT);
  pinMode(DC4,OUTPUT);
  
   pinMode(BWFL,INPUT);
   pinMode(BWFR,INPUT);
   pinMode(BWBL,INPUT);
   pinMode(BWBR,INPUT);
  delay(4000);
  analogWrite(DC1,250);
    analogWrite(DC2,0);
    analogWrite(DC3,250);
    analogWrite(DC4,0);
    delay(400);
    analogWrite(DC1,0);
    analogWrite(DC2,250);
    analogWrite(DC3,0);
    analogWrite(DC4,250);
    delay(400);
}

void loop()
{   int valBWFL= digitalRead(BWFL);
    int valBWFR= digitalRead(BWFR);
    int valBWBL= digitalRead(BWBL);
    int valBWBR= digitalRead(BWBR);
  if ( valBWBL==0 || valBWBR==0 && valBWFL==1 && valBWFR==1)
  { analogWrite(DC1,200);
    analogWrite(DC2,0);
    analogWrite(DC3,200);
    analogWrite(DC4,0);
    delay(900);
    analogWrite(DC1,200);
    analogWrite(DC2,0);
    analogWrite(DC3,0);
    analogWrite(DC4,200);
    delay(700);
    analogWrite(DC1,200);
    analogWrite(DC2,0);
    analogWrite(DC3,200);
    analogWrite(DC4,0);
    delay(200);
  }
  else if ( valBWBL==1 && valBWBR==1 && valBWFL==0 || valBWFR==0)
   {analogWrite(DC1,0);
    analogWrite(DC2,200);
    analogWrite(DC3,0);
    analogWrite(DC4,200);
    delay(900);
    analogWrite(DC1,0);
    analogWrite(DC2,200);
    analogWrite(DC3,200);
    analogWrite(DC4,0);
    delay(700);
    analogWrite(DC1,200);
    analogWrite(DC2,0);
    analogWrite(DC3,200);
    analogWrite(DC4,0);
    delay(200);
  }
  else if ( valBWBL==1 && valBWBR==1 && valBWFL==1 && valBWFR==1)
  {analogWrite(DC1,0);
   analogWrite(DC2,200);
    analogWrite(DC3,0);
   analogWrite(DC4,200);}}

please tell me the problem

Probably the long delays - 900mS, 700mS - that's a long time to let things happen before you can get control back.

but this delay lets the robot fully reverses to get back into the ring