clc, clear all, close all

r=roomba(30)
move_GUI
r.showCamera

global i;global q;global p;global record;
i=0;q=1;p=0;t=1;v=0;movement=[];record=1;

while true
   while record==1
       movement=[];
    if i==1
        if t==-1
            if q==1
                r.setDriveVelocity(.5);
            elseif q==2
                r.setDriveVelocity(-.5);
            elseif q==3
                r.setDriveVelocity(0.1,-0.1);
            elseif q==4
                r.setDriveVelocity(-0.1,0.1);
            elseif q==5
                r.stop;
            elseif q==6
                r.songPlay('O7,T800,B,E,C,O6,A,B,F,O5,E,E,A,O4,B,B,B,O3,A,E,G,E,A,O4,T400,G,A,E,A')
            elseif q==7
                pause(1)
            elseif q==8
                r.setDriveVelocity(.4,.25);
            elseif q==9
                r.setDriveVelocity(.25,.4);
            end
        elseif t==1
            if q==1
                r.moveDistance(0.1,.2);
            elseif q==2
                r.moveDistance(-0.05,0.2);
            elseif q==3
                r.turnAngle(5,.08);
            elseif q==4
                r.turnAngle(-5,.08);
            elseif q==5
                r.turnAngle(320,.1);
            elseif q==6
                r.songPlay('T400,O3,B,B,O4,D#,O3,B,O4,C#,O3,A,B,B,B,B,C,B,B,B,O4,D,O3,B,O4,C#,O3,A,B,B,B,B,A,O4,C#,O3,B');
            elseif q==7
                pause(1)
            elseif q==8
                r.moveDistance(0.05,.15);
            elseif q==9
                r.moveDistance(0.3,.25);
            end
        end
        i=0;
    end
    
    if p==1
        t=t.*-1;
        p=0;
    end
    
    k=r.getBumpers;
    if k.right==1 || k.left==1 || k.front==1
        r.moveDistance(-0.1,0.15);
         warndlg('check surroundings')
    end
    
    l=r.getLightBumpers;
    if l.left>40 || l.leftFront>40 || l.leftCenter>40 || l.rightCenter>40 || l.rightFront>40 || l.right>40
        r.stop;
    end
    
    C=r.getCliffSensors
    if C.left<200 || C.right<200 || C.rightFront<200|| C.leftFront<200
        r.moveDistance(-0.1,0.15);
        warndlg('ledge')
    end
    pause(.005);
   end
   while record==2
       if i==1
           if q==1
                r.moveDistance(0.1,.2);
            elseif q==2
                r.moveDistance(-0.05,0.2);
            elseif q==3
                r.turnAngle(5,.08);
            elseif q==4
                r.turnAngle(-5,.08);
            elseif q==5
                r.turnAngle(320,.1);
            elseif q==6
                r.songPlay('T400,O3,B,B,O4,D#,O3,B,O4,C#,O3,A,B,B,B,B,C,B,B,B,O4,D,O3,B,O4,C#,O3,A,B,B,B,B,A,O4,C#,O3,B');
            elseif q==7
                pause(1);
            elseif q==8
                r.moveDistance(0.05,.15);
            elseif q==9
                r.moveDistance(0.3,.25);
           end
           movement(length(movement)+1)=q
       end
       i=0;
       pause(.005);
   end
   while record==3
       for i = 1:length(movement)
           d=movement(i)
           if d==1
               r.moveDistance(0.1,.2);
           elseif d==2
               r.moveDistance(-0.05,0.2);
           elseif d==3
               r.turnAngle(5,.08);
           elseif d==4
               r.turnAngle(-5,.08);
           elseif d==5
               r.turnAngle(320,.1);
           elseif d==6
               r.songPlay('T400,O3,B,B,O4,D#,O3,B,O4,C#,O3,A,B,B,B,B,C,B,B,B,O4,D,O3,B,O4,C#,O3,A,B,B,B,B,A,O4,C#,O3,B');
           elseif d==7
               pause(1);
           elseif d==8
               r.moveDistance(0.05,.15);
           elseif d==9
               r.moveDistance(0.3,.25);
           end
       end
   end
end
