int decision_ida(int derecha, int izquierda, int recto){  
      //regreso
    if (recto==1 && derecha == 1 && izquierda == 1){
      return  turn_180();        
    }
            
    if(derecha==0  && izquierda == 1 && recto == 1 ){
      return  turn_rigt();

    }    
    
    if(derecha == 1 && izquierda==0  && recto==1 ){
      return  turn_left();
           
    }

    if(derecha == 1 && izquierda==1  && recto==0 ){
      return forward();
           
    }
            
    if (derecha == 0  && izquierda == 0 && recto==0 ){
      return  turn_rigt();
              
    }
    
    if (derecha == 0 && izquierda == 0 && recto==1 ){
      return  turn_rigt();
              
    }
    
    if (derecha == 1 && izquierda == 0  &&   recto==0 ){
      return forward();
              
    }
    
    if (derecha == 0 && izquierda == 1   && recto==0 ){
      return turn_rigt();              
    }
}  
void Check_Gaps(void)	//checks gaps and makes a 180 degree turn after going about 8cm (needs to be exact.)
{
    int sensor_check = 0;									//variable sensor check
    for(sensor_check; sensor_check < 10; sensor_check++)	//executes 20 times, looking for gaps in each count.
    {
        check_sensors();				//constantly keeps checking for LED combinations
        if ( (SeeLine.B ) == 0b00000u)	//all LEDs OFF
        {
            straight_fwd();			//go straight
            Delay10KTCYx(20);		//0.025s OR 25ms.
            if( sensor_check == 9)	//last condition
            {
                turn_180 ();
                straight_fwd();
            }
        }
        else
        {
            sensor_check = 9;
        }
    }
}