تطبيق في البرمجة بالباسكال "لعبة المتاهة'

achraf.mouni

  • Hero Member
  • *****
    • مشاركة: 2439
    • مشاهدة الملف الشخصي
    • البريد الالكتروني
تطبيق في البرمجة بالباسكال "لعبة المتاهة'
كيف تبرمج لعبة بلغة الباسكال؟
تعتبرهذه اللعبة بسيطة جدا في تركيبها ومبدءها وهي تعتبر تمرينا تطبيقيا جيدا على كيفية العمل بلوح المفاتيح في لغة الباسكال. :1 (23):
اسم هذه العبة "المتاهة السحرية " .


رسم تمثيلي للعبة:

    كود:
    program GAME_01;
uses crt;
type h=record
       x
,y:integer;
       
end;
label 1,2;
var
   
ch:string;
   
op:char;
   
i,j,z,xj,yj,xv,yv,g:integer;
   
t:array[1..1000]of h;
   
tt:array[1..28of string;
   
m:array[1..3of h;

procedure ds;
begin
   clrscr
;
   
gotoxy(23,5);textcolor(14);
    
write('-- * * * AL MATAHA A SIHRIYA * * * --');
   
textcolor(12);
   for 
i:=0 to 27 do begin
    gotoxy
(23,09+i);
    
write(tt[i+1]);
   
end;
    
textcolor(11);
   
gotoxy(23,38);write('Le nombre de mouvements: ',g);
   
textcolor(10);
   for 
i:=1to 3 do
    
begin
    gotoxy
(m[i].x,m[i].y);
    
write('*');
    
end;
   
gotoxy(xv,yv); write('');gotoxy(xv,yv); textcolor(0);

end;

begin
   g
:=0;
   
clrscr;gotoxy(20,15);textcolor(45);
    
write('******** AL MATAHA A SIHRIYA *********');
    
gotoxy(20,18);
    
write('          <= =>  Exit=enter ');
    
gotoxy(11,25); textcolor(8);
    
write('***** game1 / Maghchiche Hamza  *****');
    
gotoxy(20,20);
    
write('          <= =>  Exit=enter ');
    
readln;
    
xv:=23yv:=12;
    for 
i:=1to 3 do
    
begin
    m
[i].x:=23-i;
    
m[i].y:=12;
    
end;
   
tt[1]:= '±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±';
   
tt[2]:= '±               ±               ±   ±';
   
tt[3]:= '±±±±± ±±±±±±±±± ±± ±±±±±±±±±±±± ± ± ±';
   
tt[4]:= '      ±       ± ±± ±±        ±± ± ± ±';
   
tt[5]:= '±± ±± ± ±±±±± ± ±±±±±± ±±±±± ±± ± ± ±';
   
tt[6]:= '±± ±±±± ±     ±        ±±    ±± ± ± ±';
   
tt[7]:= '±       ±±±±±±± ±±±±±±±±± ±± ±  ± ± ±';
   
tt[8]:= '± ± ±±±±±±       ±        ±±±± ±± ± ±';
   
tt[9]:= '± ±      ±±±±±±±±± ±±±±±±      ±± ± ±';
  
tt[10]:= '±±±±±±±± ±±±       ±±±±±±±±±±±±±± ± ±';
  
tt[11]:= '±          ± ±± ±±                ± ±';
  
tt[12]:= '±±±±±±±±±±±± ±± ±±±±±±± ±± ±±±±±±±± ±';
  
tt[13]:= '±    ±±      ±±       ± ±  ±±±±   ± ±';
  
tt[14]:= '± ±±±±± ±±±±±±±±±± ±± ± ± ±±    ±±± ±';
  
tt[15]:= '±    ±± ±±± ±      ±±±± ± ±± ±± ±±± ±';
  
tt[16]:= '± ±± ±±     ±±±±±  ±±   ± ±± ±±     ±';
  
tt[17]:= '± ±± ±±±±±±±±±±±±± ±± ± ± ±± ±±±±±±±±';
  
tt[18]:= '± ±                ±± ± ±  ±        ±';
  
tt[19]:= '± ±±±± ±±±±±±±±±±±± ±±±±±±±±±±±±± ± ±';
  
tt[20]:= '±±±                   ±       ±   ± ±';
  
tt[21]:= '±   ±± ±±±±±±±±±±±±±±±± ± ±± ±± ± ± ±';
  
tt[22]:= '±±±±±± ±      ±±     ±± ± ±  ±± ± ± ±';
  
tt[23]:= '±      ± ±±±± ±±±±±±    ±±±± ±± ± ± ±';
  
tt[24]:= '± ±±±±±±±±±±±        ±±±±    ±± ± ± ±';
  
tt[25]:= '± ±           ±±± ±± ±  ±± ±±±± ± ± ±';
  
tt[26]:= '± ±±± ±±±±±±±±±±± ±±±±± ±±   ±± ± ± ±';
  
tt[27]:= '±               ±        ±±± ±  ±   ±';
  
tt[28]:= '±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±±±±±±±';
    
ds;
      
t[1].x:=51;   t[1].y:=36;
      
z:=3;
      for 
i:=0to 27 do
      
begin
          ch
:=tt[i+1];
          for 
j:=0 to(length(ch)-1)do
          if 
ch[j+1]='±'then
          begin
            t
[z].x:=23+j;
            
t[z].y:=9+i;
            
z:=z+1;
            
end;
      
end;

    
1:repeat
            op
:=readkey;
            if 
op=#13 then {Exit}
               
goto 2;

      
until (op=#72)or(op=#77)or(op=#75)or(op=#80);

        
xj:=xvyj:=yv;
    case 
op of
    
#80:yj:=yv+1;
    #72:yj:=yv-1;
    #75:xj:=xv-1;
    #77:xj:=xv+1;
    
end;

    if (
t[1].x=xj)and(t[1].y=yj)then begin
    clrscr
;gotoxy(20,15);textcolor(9);
    
write('   ******** BINGOOOOOO !!! *********');
    
gotoxy(11,25); textcolor(8);
    
write('***** game1 / Maghchiche Hamza *****');
    
readln;
    goto 
2;
    
end;
    for 
i:=2to 1000 do
     if (
t[i].x=xj)and(t[i].y=yj)then
     
goto 1;

     
m[3].x:=m[2].xm[3].y:=m[2].y;
     
m[2].x:=m[1].xm[2].y:=m[1].y;
     
m[1].x:=xv;m[1].y:=yv;
      
xv:=xjyv:=yj;
     
g:=g+1;
     
ds;
     goto 
1;
2:end.