Karel 2.2.3 - addSlow

PHOTO EMBED

Thu Aug 11 2022 14:57:21 GMT+0000 (Coordinated Universal Time)

Saved by @bibberhug

void addSlow(){
    
    //always starting in 1st row
    
    while(frontIsClear()){ //while loop to stop the program when facing wall at end of adding
        
//--if starting onBeeper---------------------------------------------------------------------
        
        //decrement 1st row and move down to 2nd row
        if(onBeeper()){
            pickBeeper(); turnLeft(); moveForward(); turnRight();
            
            //increment 2nd row
            while(onBeeper())  {
                pickBeeper();
                moveForward(); }
            
            dropBeeper();
          
            //return to 1st row
            turnAround(); while(frontIsClear()){moveForward();}
            turnLeft(); moveForward(); turnLeft();
        }
      
//-------------------------------------------------------------------------------------------
      
//--if starting !onBeeper--------------------------------------------------------------------
        
        //decrement 1st row
        while(!onBeeper())       {
            dropBeeper();
            if(frontIsClear()) {
                moveForward(); } }
        
        pickBeeper();
        
        if(frontIsClear()){
            
            //return to 2nd row
            turnAround(); while(frontIsClear()){moveForward();}
            turnRight(); moveForward(); turnRight();
            
            //increment 2nd row        
            while(onBeeper())  {
                pickBeeper();
                moveForward(); }
            
            dropBeeper();
            
            //return to 1st row
            turnAround(); while(frontIsClear()){moveForward();}
            turnLeft(); moveForward(); turnLeft();        
        }    
     //-------------------------------------------------------------------------------------------
    }
}
content_copyCOPY