میهن داکیومنت بزرگترین مرجع و مرکز دانلود پایان نامه (متن کامل فرمت ورد) فروش پایان نامه - خرید پایان نامه (کاردانی ، کارشناسی)همه رشته ها
حقوق اقتصاد مدیریت روانشناسی ریاضی تربیت بدنی کامپیوتر نرم افزار و سخت افزار عمران معماری برق صنایع غذایی علوم اجتماعی هنر علوم سیاسی فیزیک مکانیک حسابداری

تبلیغات کلیکی - افزایش رتبه گوگل

اگهی رایگان

آموزش محیط گرافیکی در توربو پاسکال 7


کد محصول : 10001043 نوع فایل : word تعداد صفحات : 15 صفحه قیمت محصول : رایگان تعداد بازدید 965

دانلودرایگان فایل رمز فایل : m3d1043

فهرست مطالب و صفحات نخست


آموزش محیط گرافیکی در توربو  پاسکال 7

 براي برنامه نويسي در محيط گرافيكي نياز به مقدماتي براي ورود به محيط گرافيك است . اولين خط هر برنامه گرافيكي بعد از دستور Program ، فرمان زير است :
Uses graph ;
با استفاده از دستور uses برنامه شما مي تواند از پيمانه ها و ثوابت توربو پاسكال استفاده كند . اين ثوابت و پيمانه ها در فايلي كه يك unit ناميده مي شود جاي مي گيرند . كدي كه در حالت گرافيكي توسط كامپيوتر توليد مي شود ، به نوع كامپيوتر بستگي دارد . بنابراين نوع سخت افزار گرافيكي كه در اختيار سيستم است بايد به توربو پاسكال اعلام شود . براي اين كار از دو متغير Driver و Mode بصورت زير استفاده مي شود :
Var
  Driver , Mode : Integer ;
محتواي اين دو متغير نوع سخت افزارهاي گرافيكي سيستم را مشخص مي كند . براي تعيين حالت گرافيكي از دستور زير استفاده مي شود :
InitGraph (Driver, Mode, ‘…….’) ;
رويه InitGraph سيستم گرافيكي شما را بررسي كرده و سپس در متغيرهاي Driver و Mode مقادير مناسب را قرار مي دهد . پارامتر رشته اي ‘……’ شاخه اي را مشخص مي كند كه در آن نرم افزار كنترل سيستم گرافيكي شما وجود دارد . رشته اي كه بدون كاراكتر است ‘ ‘ به اين معناست كه اين نرم افزار در شاخه جاري قرار دارد .
اين نرم افزار همواره در شاخه BGI قرار دارد و معمولا" در محلي است كه برنامه توربو پاسكال نصب شده است . بنابراين بايد آدرس شاخه BGI را بجاي اين رشته بنويسيم . براي انعطاف پذير شدن برنامه و قابليت اجراي آن روي سيستم هاي مختلف معمولا" يك نسخه از شاخه BGI را در شاخه اي كه برنامه در آن قرار دارد ، كپي مي كنيم .
صفحه نمايشي كه مانند يك صفحه مختصات است :
در برنامه نويسي گرافيكي موقعيت هر خط يا هر شكلي را كه روي صفحه نمايش رسم مي كنيد ، بايد كنترل كنيد . صفحه نمايش را در محيط گرافيكي بصورت مختصات X-Y تعدادي نقطه مي توان در نظر گرفت . در اكثر نمايشگرها ابعاد متداول عبارتند از : 200×320 ، 350×640 ، 480×640 . كه معمولا" تعداد نقاط در محور X ها بيشتر است .
توابع GetMaxX و GetMaxY در توربو پاسكال، به ترتيب حداكثر تعداد نقاط در Xها و Yها را برمي گردانند . بنابراين براي بدست آوردن ابعاد واقعي نمايشگر خود مي توانيد از اين توابع بصورت زير استفاده كنيد :              
 MaxX := GetMaxX ;             MaxY := GetMaxY ;
مختصات گوشه های صفحه نمایش به صورت زیر است.
 
براي برگرداندن برنامه به حالت متني از دستور زيراستفاده مي كنيم .
CloseGraph ;
رنگ زمينه و متن :
بطور پيش فرض براي رنگ هاي زمينه و متن ، به ترتيب از سياه و سفيد استفاده مي شود . دستورات زير امكان تغيير رنگ زمينه و متن را فراهم مي كنند .
SetBkColor (….) ;                  تعيين رنگ زمينه
SetColor (….) ;                         تعيين رنگ متن 
براي انتخاب رنگها از ثوابت رنگي يا معادل عددي رنگها طبق جدول زير استفاده مي شود :
 
ثابت    مقدار    ثابت    مقدار
Black    0    DarkGray    8
Blue    1    LightBlue    9
Green    2    LightGreen    10
Cyan    3    LightCyan    11
Red    4    LightRed    12
Magenta    5    LightMagenta    13
Brown    6    Yellow    14
LightGray    7    White    15
 
خلاصه اي از توابع و رويه هاي گرافيكي :
•                Line (X1, Y1, X2, Y2) ;
بين نقاط (X1,Y1) و (X2,Y2) خطي رسم مي شود .
•        Rectangle (X1, Y1, X2, Y2) ;
مستطيلي كه قطر آن بين نقاط (X1,Y1) و (X2,Y2) است مي كشد .
•        Circle (X, Y, R) ;
دايره به مركز (X,Y) و شعاع R رسم مي كند .
•        Arc (X, Y, Angle1, Angle2, R) ;
كماني از زاويه Angle1 تا Angle2 و به مركز (X,Y) و شعاع R رسم مي كند .
•        SetFillStyle (FilPat, FilCol ) ;
براي رنگ آميزي قسمتهايي از صفحه نمايش با رنگهاي مختلف از اين رويه استفاده مي شود تا نوع رنگ و نحوه رنگ آميزي مشخص شود .
الگوهاي رنگ آميزي و رنگها با توجه به جدول زير انتخاب مي شوند ، در اين رويه هم از نام ثابت و هم از معادل عددي مي توانيد استفاده كنيد .
تا زمانيكه بار ديگر اين رويه را فراخواني نكنيد ، اين حالت فعال خواهد بود .
ثابت    معادل عددي    الگوي رنگ آميزي    ثابت    معادل عددي    الگوي رنگ آميزي
EmptyFill2    0    رنگ زمينه    LtBkSlashFill    6    \ \ \ \ (بافاصله)
SolidFill    1    بصورت توپر    HatchFill    7    هاشور
LineFill    2    - - - -    XhatchFill    8    متقاطع
ItSlashFill    3    / / / / (بافاصله)    InterLeaveFill    9    خط در ميان
SlashFill    4    //// (بدون فاصله)    WidDotFill    10    نفطه اي (بافاصله)
BslashFill    5    \\\\ (بدون فاصله)    CloseDotFill    11    نقطه اي(بدون فاصله)
 
•       
FloodFill (X, Y, Border) ;
محدوده اي را كه حاوي نقطه (X,Y) است و با خطوطي به رنگ Border محصور شده است ، با الگوي جاري رنگ آميزي مي كند .
•        Bar (X1, Y1, X2, Y2) ;
مستطيلي توپر مي كشد كه قطر آن بين نقاط (X1,Y1) و (X2,Y2) است .
•        PieSlice (X, Y, Angle1, Angle2, R) ;
يك برش دايره توپر مي كشد كه از زاويه Angle1 شروع شده و به Angle2 ختم مي شود و داراي مركز (X,Y) و شعاع R مي باشد .
•        OutTextXY (X, Y, TextString) ;
در نقطه (X,Y) كاراكترهاي رشته TextString را چاپ مي كند .
v    برنامه زير يك نمونه از برنامه نويسي ساده گرافيكي را نشان مي دهد .
uses graph;
procedure HappyFace(MidX,MidY:integer);
var
HeadRadius:integer;
begin
   HeadRadius:=GetMaxY div 4;
   Circle (MidX, MidY, HeadRadius);
end;
 
var               
   Driver,Mode,MidX,MidY:integer;
begin
   InitGraph (Driver, Mode, ' ');
   MidX:=GetMaxX div 2;
   MidY:=GetMaxY div 2;
   HappyFace(MidX,MidY);
   OutTextXY(230, 400, '!!! Press Any Key !!!');
   readln;
   CloseGraph;
end.
نقاشي متحرك گرافيكي :
اگر يك رويه گرافيكي داراي پارامتر باشد ، مي توان موقعيت يك شكل را تغيير داد و يا آن شكل را در چند نقطه از صفحه نمايش رسم كرد . علاوه بر اين مي توان يك شكل را متحرك ساخت . اين كار به اين صورت انجام مي شود كه ابتدا شكلي در نقطه خاصي از صفحه نمايش رسم مي شود ، سپس از آن نقطه پاك شده و در محل ديگري رسم مي شود . با تكرار اين عمل شكل مورد نظر متحرك به نظر مي رسد .
براي تعيين سرعت حركت از يك تأخير زماني بين دفعات رسم شكل استفاده مي كنيم . براي ايجاد اين تأخير مي توان از رويه Delay (DelayTime) استفاده كرد . عدد DelayTime بر اساس ميلي ثانيه بيان مي شود و البته براي استفاده از اين تابع بايد  واحد Crt را با فرمان uses Crt در ابتداي برنامه فراخواني كنيد .
v    در مثال بعد با استفاده از روش گفته شده ، شكل رسم شده در مثال قبل را متحرك مي كنيم.
var
   Driver,Mode,MidX,MidY:integer;
begin
   InitGraph (Driver, Mode, ' ');
   MidX:=0;
   MidY:=0;
   while ((MidX<GetMaxX) and (MidY<GetMaxY)) do
     begin
       HappyFace(MidX,MidY);
       MidX:=MidX+50;
       MidY:=MidY+50;
       Delay(50);
       SetFillStyle(3,4);
       Bar(0,0,639,479);
     end;
   OutTextXY(230, 400, '!!! Press Any Key !!!');
   readln;
   CloseGraph;
end.
 
دستور كار (1 )
در محيط گرافيك توربو پاسكال برنامه اي بنويسيد كه اشكال زير را در خروجي رسم كند . سعي كنيد توابع را طوري بنويسيد كه با دريافت مختصات يك نقطه از شكل مثلا" مركز آن ، تمام شكل را رسم كند . (مانند مثال مطرح شده در جزوه) سعي كنيد تمام مختصات لازم براي رسم اشكال را با فرمول بدست آوريد و تا حد امكان از استفاده مستقيم از اعداد خودداري كنيد .
 
دستور كار (2 )
در محيط گرافيك توربو پاسكال برنامه اي بنويسيد تا اشكال زير را به ترتيب و بصورت متحرك نمايش دهد. سرعت حركت آدمك بايد به گونه اي باشد كه بين مرحله اول تا آخر 2 ثانيه طول بكشد. نيازي به جابجايي خانه ها وجود ندارد ، برنامه را طوري بنويسيد كه آدمك از يك خانه بيرون بيايد و دوباره در همان خانه فرو برود . تابع رسم آدمك بايد به گونه اي باشد كه با دريافت مختصات يك نقطه مشخص (مركز خانه) آدمك را رسم كند و هر بار با كم يا زياد كردن مختصات اين نقطه آدمك را در محل جديدي رسم كند .
 
 
دستور كار (3 )
برنامه اي بنويسيد كه پنجره زير را رسم كند . براي طرح پنجره ها و رنگها به دلخواه تصميم بگيريد.
 
دستور كار (4 )
با استفاده از تابعي كه در دستور كار (2) نوشته ايد ، برنامه اي بنويسيد كه آدمك را به طور تصادفي در خانه هاي پنجره شماره يك ظاهر كند . به اين ترتيب كه با يك تابع شماره خانه اي را كه آدمك بايد در آن ظاهر شود ، به طور تصادفي توليد كنيد و سپس مختصات مركز آن خانه را به تابع رسم آدمك بدهيد . اين كار بايد تا زماني ادامه پيدا كند كه 10 بار آدمك در خانه هاي مختلف ظاهر و سپس ناپديد شود . تابع حركت آدمك را بدون استفاده از Delay  بنويسيد .  براي ايجاد حالت متحرك بعد از هر بار رسم آدمك پنجره شماره 1 بايد مجددا" رسم شود .
 
دستور كار (5 )
برنامه اي بنويسيد كه ماوس را در پنجره شماره 2 فعال كند و محل كليك كردن ماوس را مشخص كند . بطوريكه اگر كاربر در هر محلي از يك خانه كليك كند برنامه شماره آن خانه را بعنوان خروجي برگرداند . مثلا" اگر كاربر در هر نقطه اي از خانه شماره 1 كليك كند برنامه عدد يك را بعنوان خروجي برگرداند .
 
دستور كار (6 )
برنامه اي را كه در دستور كار (4) نوشته ايد طوري تغيير دهيد كه اگر در زمان حركت آدمك ، كاربر ماوس را در هر كدام از خانه هاي پنجره شماره 2 كليك كند ، آدمك بعدي ظاهر شود . يعني با هر بار كليك ماوس بازي به مرحله بعدي برود .
 
دستور كار (7 )
برنامه دستور كار (6) را به گونه اي تغيير دهيد كه تشخيص دهد آيا شماره خانه اي كه ماوس در آن كليك شده ، با شماره خانه اي كه آدمك در آن حركت مي كرده يكسان است يا نه ؟ در صورت يكسان بودن شماره ها يك امتياز مثبت و در صورت يكسان نبودن يك امتياز منفي به كاربر بدهيد .
پروژه نهايي :
بازي كامپيوتري طراحي شده در طول ترم را تكميل كنيد به نحوي كه بعد از هر بازي امتياز كاربر را نمايش دهد .
 
امكانات اضافي :
1- استفاده از طرحها و رنگهاي متنوع در طراحي پنجره ها ، خانه ها و آدمكهاي بازي .
2- ايجاد پنجره اي مخصوص نمايش امتياز كاربر در هر مرحله و در انتهاي بازي .
3- استفاده از امكانات صوتي در مراحل مختلف بازي مثل شروع بازي ، پايان بازي ، انتخاب خانه صحيح ، انتخاب خانه غلط ، ظاهر شدن آدمك جديد ، ناپديد شدن آدمك متحرك .
4- طراحي صفحه متحرك براي شروع و پايان بازي .
5- ...
 


منابع :


 
طراحی سایت : سایت سازان