%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This function 'pac' creates simple .avi file which contains motion of a small pacman, 
% Programed by xiangdong wen
% Date : Oct, 2002
% Advisor : Dr.Longin Jan Latecki (latecki@temple.edu )
% Project : a small movie
% 
% Input arguments: No need for input
% Output : 'pacman.avi'
% Example : pac()
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function pac()

global aviobj;
aviobj= avifile('pacman.avi','fps',12); % initialize .avi file object.
 
global bigMatrixImg;
global background_Img;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% goes through the maze.
%%%%%
%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%initial the image matrix
bigMatrixImg=zeros(240,320,3);
background_Img=zeros(240,320,3);
%%%%%%Draw the track of the road
for j=0:1:3
    for i1=-1+j:1:7-j
        for k1=1:1:40
            if(i1*40+k1>0)
            bigMatrixImg(j*40+1,i1*40+k1,1)=1;
            bigMatrixImg(j*40+2,i1*40+k1,1)=1;
            end
        end    
    end

 if (j==3)break;end;
 for i2=j:1:5-j
    for k1=1:1:40
        bigMatrixImg(i2*40+k1,(8-j)*40-1,1)=1;
        bigMatrixImg(i2*40+k1,(8-j)*40-2,1)=1;   
    end   
 end
 for i3=8-j:-1:1+j
    for k1=1:1:40
        bigMatrixImg((6-j)*40-1,(i3)*40-k1+1,1)=1;
        bigMatrixImg((6-j)*40-2,(i3)*40-k1+1,1)=1;
    end   
 end
 for i4=6-j:-1:2+j
      for k1=1:1:40
        bigMatrixImg((i4)*40-k1+1,(j)*40+1,1)=1;
        bigMatrixImg((i4)*40-k1+1,(j)*40+2,1)=1;
    end     
 end
end
%%%%%%%Draw the food on the road
for i1=1:6
    for j1=1:8
            
        for k1=(i1-1)*40+1:1:i1*40
            for k2=(j1-1)*40+1:1:j1*40
                if((k1-i1*40+20)^2+(k2-j1*40+20)^2<25)
                bigMatrixImg(k1,k2,2)=1;
                end;end;
                end;end;
        end;
      
change_bg_img(1);

%         
%   
% %pacman is moving inside
% for j=0:1:2
% for i1=-1+j:1:6-j
%     Pacman(i1,j,i1+1,j);
% end
%  for i2=j:1:4-j
%      Pacman(7-j,i2,7-j,i2+1);
%  end
%  for i3=7-j:-1:1+j
%      Pacman(i3,5-j,i3-1,5-j);
%  end
%  for i4=5-j:-1:2+j
%      Pacman(j,i4,j,i4-1);
%  end
% end
% 
% 
%%%%%pacman is moving outside
 for j=2:-1:0 
 for i4=2+j:1:5-j
     Pacman(j,i4-1,j,i4);
 end
for i3=1+j:1:7-j
     Pacman(i3-1,5-j,i3,5-j);
 end
 for i2=4-j:-1:j
     Pacman(7-j,i2+1,7-j,i2);
 end
 for i1=6-j:-1:-1+j
    Pacman(i1+1,j,i1,j);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%
%%play the moon around the earth
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%initial the image
bigMatrixImg=zeros(240,320,3);
%%%%%%%%%%%%%%draw the earth
for i1=130:1:190
    for i2=90:1:150
        if((i1-160)^2+(i2-120)^2<900)       
            bigMatrixImg(i2,i1,3)=1;
        end
    end
end

for i=1:1:40
    bigMatrixImg(:,i,2)=1;
    bigMatrixImg(:,i,1)=1;
    bigMatrixImg(:,i+280,2)=1;
    bigMatrixImg(:,i+280,1)=1;
end;
for i=1:1:40
    for j=1:1:40
        bigMatrixImg(100+i,280+j,2)=0;
        bigMatrixImg(100+i,280+j,1)=0;
    end;
end;



for angle11=0:pi/6:2*pi
    i1=(3.5+2*cos(angle11));
    j1=(4.5+2*sin(angle11));
    
    for k1=(i1-1)*40+15:1:i1*40-15
       for k2=(j1-1)*40+15:1:j1*40-15
           if((k1-i1*40+20)^2+(k2-j1*40+20)^2<25 & k1>0 & k2>0 & k1<=240 & k2 <=320)
               a=ceil(k1);b=ceil(k2);
                bigMatrixImg(a,b,2)=1;
           end;
       end;    
   end
   
end;
change_bg_img(2);

%%%%%%%%%%%%%%%%%%%%%%%%%%moving around   

Pacman(8,2.5,7,2.5);
x11=7;
y11=2.5;
for angle11=0:pi/6:2*pi
    newx11=3.5+2*cos(angle11);
    newy11=2.5+2*sin(angle11);
    Pacman(x11,y11,newx11,newy11);
    x11=newx11;
    y11=newy11;
end;
Pacman(6,2.5,7,2.5);
Pacman(7,2.5,8,2.5);



% 
% 
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %play the roll of super mario 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
bigMatrixImg=zeros(240,320,3);

matri=[
    1,1,1,1,1,1,1,1
    1,0,0,2,2,2,0,1
    0,0,2,2,1,2,0,0
    1,0,2,1,2,2,0,1
    1,0,1,2,2,1,0,1
    1,1,1,1,1,1,1,1];
for i1=1:6
    for j1=1:8
        if (matri(i1,j1)==1)
            for i=(i1-1)*40+1:1:i1*40
                for j=(j1-1)*40+1:1:j1*40
                    bigMatrixImg(i,j,2)=0.3;bigMatrixImg(i,j,3)=0.5;
                end;end;
        else if(matri(i1,j1)==2)
            for k1=(i1-1)*40+1:1:i1*40
            for k2=(j1-1)*40+1:1:j1*40
                if((k1-i1*40+20)^2+(k2-j1*40+20)^2<25)
                bigMatrixImg(k1,k2,2)=1;
                end;end;
            end
        end
        end;end;end;
change_bg_img(3);

% 
Pacman(-1,2,0,2);
Pacman(0,2,1,2);
Pacman(1,2,2,3);
Pacman(2,3,2,2);
Pacman(2,2,3,2);
Pacman(3,2,3,1);
Pacman(3,1,4,1);
Pacman(4,1,5,1);
Pacman(5,1,5,3);
Pacman(5,3,4,3);
Pacman(4,3,4,4);
Pacman(4,4,3,4);
Pacman(3,4,4,4);
Pacman(4,4,4,3);
Pacman(4,3,5,3);
Pacman(5,3,5,1);
Pacman(5,1,5,3);
Pacman(5,3,6,2);
Pacman(6,2,7,2);
Pacman(7,2,8,2);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %%%     %%%    %      %%    %   %     %    %  %          %%% 
% %%%     % %   % %    %      %% %%    % %   %% %          %%%
% %%%     %%%   %%%    %      % % %    %%%   % %%          %%%
% %%%     %     % %     %%    %   %    % %   %  %          %%%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
matri=[
    0,0,0,0,0,0,0,0
    0,1,0,1,0,1,1,0
    0,0,0,0,0,0,1,0
    0,1,1,0,1,0,0,0
    0,1,0,0,1,1,0,1
    0,0,0,1,0,0,0,0];
bigMatrixImg=zeros(240,320,3);
for i1=1:6
    for j1=1:8
        if (matri(i1,j1)==1)
            for i=(i1-1)*40+1:1:i1*40
                for j=(j1-1)*40+1:1:j1*40
                    bigMatrixImg(i,j,2)=0.5;bigMatrixImg(i,j,3)=1;
                end;end;
        else
            for k1=(i1-1)*40+1:1:i1*40
            for k2=(j1-1)*40+1:1:j1*40
                if((k1-i1*40+20)^2+(k2-j1*40+20)^2<25)
                bigMatrixImg(k1,k2,2)=1;
                end
            end
        end
        end;end;end;
change_bg_img(4);

background_Img(:,:,:)=bigMatrixImg(:,:,:);
Pacman3(0,0,0,2,7,5,6,5,7,0,7,1);
Pacman3(0,2,0,4,6,5,5,5,7,1,7,2);
Pacman3(0,4,0,5,5,5,4,5,7,2,7,3);
Pacman3(0,5,2,5,4,5,5,5,7,3,6,3);
Pacman3(2,5,2,4,5,5,6,5,6,3,5,3);
Pacman3(2,4,3,4,6,5,6,4,5,3,5,2);
Pacman3(3,4,3,2,6,4,6,3,5,2,4,2);
Pacman3(3,2,1,2,6,3,7,3,4,2,3,2);
Pacman3(1,2,0,2,7,3,7,2,3,2,2,2);
Pacman3(0,2,0,0,7,2,7,1,2,2,1,2);
Pacman3(0,0,2,0,7,1,7,0,1,2,0,2);
Pacman3(2,0,4,0,7,0,6,0,0,2,0,1);
Pacman3(4,0,4,2,6,0,5,0,0,1,0,0);
Pacman3(4,2,5,2,5,0,4,0,0,0,1,0);
Pacman3(5,2,5,3,4,0,3,0,1,0,2,0);
Pacman3(5,3,7,3,3,0,2,0,2,0,3,0);
Pacman3(7,3,7,1,2,0,2,1,3,0,4,0);
Pacman3(7,1,7,0,2,1,2,2,4,0,4,1);
Pacman3(7,0,5,0,2,2,3,2,4,1,4,2);
Pacman3(5,0,3,0,3,2,3,3,4,2,5,2);
Pacman3(3,0,2,0,3,3,3,4,5,2,4,2);
Pacman3(2,0,2,2,3,4,2,4,4,2,4,1);
Pacman3(2,2,4,2,2,4,2,5,4,1,4,0);
Pacman3(4,2,5,2,2,5,1,5,4,0,3,0);
Pacman3(5,2,5,3,1,5,0,5,3,0,2,0);
Pacman3(5,3,6,3,0,5,0,4,2,0,2,1);
Pacman3(6,3,6,5,0,4,0,3,2,1,2,2);
Pacman3(6,5,4,5,0,3,0,2,2,2,3,2);
Pacman3(4,5,6,5,0,2,0,1,3,2,4,2);
Pacman3(6,5,7,5,0,1,0,0,4,2,5,2);
Pacman3(7,5,8,5,0,0,0,0,5,2,5,2);

aviobj = close(aviobj);
