درود!
این جا مکانی است ویژه برای دانشجویان مهندسی کامپیوتر / آی تی و نرم افزار و صد البته افرادی که جویندگان دانش و تکنولوژی هستند.
آقایان دانوش ،یاشار و آمالی دارندگان این بلاگ بودند و هم اکنون تنها آقای دانوش مدیریت این وبلاگ را بر عهده دارد، با توجه به زمان بندی ها هم اکنون در این سایت فعالیت پویا ای نداریم.

بازی موش و گربه (نسخه yashar)

پنجشنبه 7 آذر 1392
21:23
یاشار عرفانیان
با سلام ، در این پست من بازی موش و گربه را بدلیل در خواست بازدید کنندگان محترم با توضیحات کامل قرار داده ام تا خواندن برنامه برای شما دوستاران برنامه نویسی آسان تر شود . (این نسخه نسبت به کد D4N005H آسان تر می باشد.)
برای مشاهده ادامه توضیحات به بخش ادامه مطلب مراجعه نمایید.
در بخش اول این برنامه با استفاده از دستور for و line خط های عمودی و افقی را رسم می نماییم .(خط های عمودی در یک حلقه و خط های افقی نیز در حلقه ای جداگانه.)

پس از رسم خطوط با استفاده از دستورات setfillsyle و floodfill خانه های مورد نظر را با رنگ مورد نظر پر می کنیم.

نکته : ساختار املایی دو دستور فوق به صورت زیر می باشد:
setfillstyle (a , b ) ;
در این دستور a نوع رنگ آمیزی خانه ها (پر کردن ، هاشور و ....) که عددی بین 1 تا 12 می باشد. برای اطلاع از نوع رنگ آمیزی هر عدد از قسمت هلپ برنامه استفاده نمایید.
b نیز رنگ مورد نظر شما می باشد. عددی بین 1 تا 15
floodfill(int c , int d , e);
در این دستور c و d مختصات یک نقطه درون محلی است که می خواهیم آن ناحیه رنگ شود و e رنگ مرزی می باشد که می خواهیم تا آن مرز رنگ آمیزی انجام شود.
پس از این دستورات یک for بی نهایت داریم که در آن ابتدا یک کلید را از کاربر دریافت می نماید و سپس شرط دکمه های ورودی قرار گرفته و در هر شرط کلید شرطی دیگر وجود دارد که با استفاده از getpixel چک میکند که اگر با تغییر هر بار x و y (مختصات مرکز دایره -گربه-) اگر x+r (مرز دایره) درون پیکسل های قرمز وارد شد دایره را در مکان قبلی چاپ کند و در غیر این صورت با زدن دکمه ها دایره به اندازه طول ضلع مربع ها پرش انجام دهد.

نکته : در این بخش می خواهم شما را با تابع sound آشنا کنم ؛ این تابع صدا را با فرکانس های درخواستی شما تولید میکند ، و سپس با عمل delay طول زمان اجرا و در انتها با دستور nosound پروسه تولید صدا را خاتمه می دهیم.

نکته : در مقیاس پیکسل برای نمایش یک رشته در مختصاتی خاص از دستور outtextxy استفاده می کنیم.

کد برنامه به شرح زیر می باشد :

#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<dos.h>
#include<graphics.h>

void main()
{
clrscr();

int x = 20 , y = 20 , r = 15 , R=30 ;    // tarif moteghayer
char k ;

int m = 0 , n = 0 ;              // mohit graphic
initgraph(&m , &n , "");

circle(620 , 460 , 10);
outtextxy(617 ,456 , "m");


int xl1 = 0 , yl1 = 0  , yl2 =480 , xl2 = 50 ;
for (int i = 1 ; i <=16 ; i++){           // khat haye amudi

line (xl1 , yl1 , xl1 , yl2);

xl1+=40 ;
}

xl1 = 0 , yl1 = 0  , yl2 =400 , xl2 = 600 ;
for (int j = 1 ; j <= 13 ; j++){           // khat haye ofoghi

line (xl1 , yl1 , xl2 , yl1);

yl1+=40 ;
}

setfillstyle(1,4);           //1
floodfill(100,100,15);

setfillstyle(1,4);           //2
floodfill(300 , 100 , 15);

setfillstyle(1,4);           //3
floodfill(500,100,15);

setfillstyle(1,4);           //10
floodfill(100,380,15);

setfillstyle(1,4);           //11
floodfill(300,380,15);

setfillstyle(1,4);           //12
floodfill(500,380,15);

setfillstyle(1,4);           //4
floodfill(170,180,15);

setfillstyle(1,4);           //5
floodfill(300,180,15);

setfillstyle(1,4);           //6
floodfill(410,180,15);

setfillstyle(1,4);           //7
floodfill(170,285,15);

setfillstyle(1,4);           //8
floodfill(300,285,15);

setfillstyle(1,4);           //9
floodfill(410,285,15);



for (;;){

k = getch();
if (k == 'q'){sound(1100); delay(300); nosound(); sound(540); delay(150); nosound(); sound(1000); delay(89); nosound();break;}

if (k == 'd'){
if( getpixel(x+40 , y )==4){
circle(x,y,r);
sound(850); delay(90); nosound(); sound(140); delay(170); nosound(); sound(600); delay(50); nosound();sound(700); delay(90); nosound();


}
else
{
setcolor(0);
circle(x,y,r);
x+=40;
setcolor(14);
circle(x,y,r);
}}
if (k == 'a'){
if(getpixel(x-40 , y )==4 ){
circle(x,y,r);
sound(850); delay(90); nosound(); sound(140); delay(170); nosound(); sound(600); delay(50); nosound();sound(700); delay(90); nosound();
//circle(x,y,r);

}
else
{
setcolor(0);
circle(x,y,r);
x-=40;
setcolor(14);
circle(x,y,r);
}}
if (k == 's'){
if( getpixel(x , y+40 )==4){
circle(x,y,r);
sound(850); delay(90); nosound(); sound(140); delay(170); nosound(); sound(600); delay(50); nosound();sound(700); delay(90); nosound();
//circle(x,y,r);

}
else
{
setcolor(0);
circle(x,y,r);
y+=40;
setcolor(14);
circle(x,y,r);
}}
if (k == 'w'){
if(getpixel(x , y-40 )==4){
circle(x,y,r);
sound(850); delay(90); nosound(); sound(140); delay(170); nosound(); sound(600); delay(50); nosound();sound(700); delay(90); nosound();
//circle(x,y,r);

}
else
{
setcolor(0);
circle(x,y,r);
y-=40;
setcolor(14);
circle(x,y,r);
}}
if ((600<x)&&(440<y)) {
clrscr();
setcolor(0);
outtextxy(275,230,"YOU WIN");
delay(200);
sound(1200); delay(200); nosound(); sound(500); delay(120); nosound(); sound(1000); delay(89); nosound(); break;
}
}

getch();
لطفا سولات خود را با ما درمیان بگذارید .امیدوارم از این پست استفاده لازم را داشته باشید.




برچسب ها: موش و گربه، توضیحات،
ساخت وبلاگ در میهن بلاگ

شبکه اجتماعی فارسی کلوب | اخبار کامپیوتر، فناوری اطلاعات و سلامتی مجله علم و فن | ساخت وبلاگ صوتی صدالاگ | سوال و جواب و پاسخ | رسانه فروردین، تبلیغات اینترنتی، رپرتاژ، بنر، سئو