در ادامه Source Code بازی راکت یا همان پینگ پنگ رو می تونوانید مشاهده کنید (به زبان C). این یک بازی یک نفره است که طرف مقابل بازیکن رایانه است. این بازی سه مرحله ای است که شما با دستکاری سرس کد این بازی می توانید آن را افزایش دهید.
محیط برنامه نویسی این بازی Turbo C++ Ide است.
این بازی رو برای ارایه به استاد سال 86 نوشتم امیدوارم بدردتون بخوره...:
:source code ping pong game in c
/*programmer mansoor behzadi
from iran,fars,firoozabad
in 1387*/
#include
#include
#include
#include
#include
#include
static int xkadr=180,ykadr=10,wkadr=550,hkadr=450,rkadr=1,jtoop=1,stoop=45,rtoop=7,xtoop=250,ytoop=20,rraket=12,wraket=100,hraket=5,xraketp=220,xraketc=250,ascii=100;
static float level=1.4,timep=1;
//////////////////////////////////////////////////////////////////////////
void raketc()
{
rectangle(xraketc,ykadr+2,xraketc+wraket,ykadr+2+hraket);
}
//////////////////////////////////////////////////////////////////////////
void m()
{
int i,h,x=300,y=255,ascii,rg[5];
static int chek=0;
int xe=610,ye=1,we=20,he=20,xg=470,yg=430,wg=150,hg=30;
if(chek==0)
{
setcolor(1);
rectangle(0,0,getmaxx(),getmaxy());
rectangle(0,0,getmaxx(),25);
setfillstyle(1,1);
floodfill(1,1,1);
setcolor(WHITE);
outtextxy(5,5,"BehzadiM.ir");
setcolor(WHITE);
setbkcolor(8);
rectangle(xe,ye,xe+we,ye+he);
setfillstyle(1,12);
floodfill(xe+1,ye+1,WHITE);
settextstyle(3,0,3);
outtextxy(xe+5,ye-6,"X");
setfillstyle(1,8);
bar(xg,yg,xg+wg,yg+hg);
rectangle(xg,yg,xg+wg,yg+hg);
settextstyle(3,0,2);
outtextxy(xg+4,yg-6," go to game");
settextstyle(2,0,5);
outtextxy(120,445,"unshow sea this form again?");
rectangle(105,450,115,460);
rg[0]=getpixel(x,y);
rg[1]=getpixel(x+5,y);
rg[2]=getpixel(x,y-5);
rg[3]=getpixel(x-5,y);
rg[4]=getpixel(x,y+5);
putpixel(x,y,12);
putpixel(x+5,y,12);
putpixel(x,y-5,12);
putpixel(x-5,y,12);
putpixel(x,y+5,12);
settextstyle(1,0,1);
outtextxy(10,100,"you can move the pointer whid right,top,left and down buttons!");
settextstyle(1,0,8);
setcolor(11);
outtextxy(100,200,"BehzadiM.ir");
while(ascii!=97)
{
if (kbhit())
{
ascii=getch();
if(ascii==75||ascii==80||ascii==72||ascii==77)
{
putpixel(x,y,rg[0]);
putpixel(x+5,y,rg[1]);
putpixel(x,y-5,rg[2]);
putpixel(x-5,y,rg[3]);
putpixel(x,y+5,rg[4]);
if(ascii==75)
x-=10;
if(ascii==72)
y-=10;
if(ascii==77)
x+=10;
if(ascii==80)
y+=10;
rg[0]=getpixel(x,y);
rg[1]=getpixel(x+5,y);
rg[2]=getpixel(x,y-5);
rg[3]=getpixel(x-5,y);
rg[4]=getpixel(x,y+5);
putpixel(x,y,12);
putpixel(x+5,y,12);
putpixel(x,y-5,12);
putpixel(x-5,y,12);
putpixel(x,y+5,12);
}
if(ascii==13&&x>xe&&x
exit(1);
if(ascii==13&&x>xg&&x
ascii=97;
if(x>xg+5&&x
{
setfillstyle(1,2);
bar(xg,yg,xg+wg,yg+hg);
setcolor(WHITE);
rectangle(xg,yg,xg+wg,yg+hg);
settextstyle(3,0,2);
outtextxy(xg+4,yg-6," go to game");
}
else
{
if(getpixel(xg+1,yg+1)==2)
{
setfillstyle(1,8);
bar(xg,yg,xg+wg,yg+hg);
setcolor(WHITE);
rectangle(xg,yg,xg+wg,yg+hg);
settextstyle(3,0,2);
outtextxy(xg+4,yg-6," go to game");
}
}
if(x>106,x<114&&y<459&&y>451&&ascii==13)
{
if(chek==0)
{
setcolor(3);
circle(110,455,2);
chek=1;
}
else
{
setcolor(8);
circle(110,455,2);
chek=0;
}
}
}
}
}
clrscr();
setbkcolor(8);
setfillstyle(1,8);
floodfill(1,1,WHITE);
gotoxy(75,1);
printf("[%c]\nleval=%1.0f",'X',level);
gotoxy(30,10);
printf("<*help*>\n");
printf(" press <- for go raket to left in game\n");
printf(" press -> for go raket to right in game\n");
printf(" press x for Exit any time\n");
printf(" press any keys for startgame now!");
gotoxy(1,30);
printf(" Programer: Mansoor Behzadi from Iran(perisa) 1387");
ascii=getch();
if(ascii==120)
exit(0);
}
//////////////////////////////////////////////////////////////////////
void toop()
{
static int r=10;
setfillstyle(1,rkadr);
fillellipse(xtoop,ytoop,r,r);
if (jtoop==1)
{
xtoop+=5;
ytoop+=5;
if((ytoop>(hkadr-r-8-hraket))&&(xtoop>xraketp)&&(xtoop
jtoop=2;
else
if(ytoop>(hkadr-r-1))
{
timep=0;
jtoop=5;
}
if(xtoop>(wkadr-r-1))
jtoop=4;
}
if (jtoop==2)
{
if( (ytoop<(hkadr/2)) && (xtoop<(wkadr-wraket/2)) && (xtoop>(xkadr+wraket)) )
xraketc=xtoop-wraket/2;
xtoop+=5;
ytoop-=5;
if(ytoop
jtoop=1;
if(xtoop>(wkadr-r-1))
jtoop=3;
}
if (jtoop==3)
{
if((ytoop<(hkadr/2))&&(xtoop
xraketc=xtoop-wraket/2;
xtoop-=5;
ytoop-=5;
if(ytoop<(ykadr+r+1))
jtoop=4;
if(xtoop<(xkadr+r+6+hraket))
jtoop=2;
}
if (jtoop==4)
{
xtoop-=5;
ytoop+=5;
if(ytoop>(hkadr-r-8-hraket)&&(xtoop>xraketp)&&(xtoop
jtoop=3;
else
if(ytoop>(hkadr-r-1))
{
timep=0;
jtoop=5;
}
if((xtoop
jtoop=1;
}
if(jtoop==5)
{
setcolor(rkadr);
circle(xtoop,ytoop,r);
}
if(timep!=0)
{
setfillstyle(1,rtoop);
fillellipse(xtoop,ytoop,r,r);
}
setcolor(rraket);
raketc();
}
//////////////////////////////////////////////////////////////////////////
void raket(int ascii)
{
int yraketp;
setcolor(rkadr);
yraketp=(hkadr-hraket-1);
rectangle(xraketp,yraketp,xraketp+wraket,yraketp+hraket);
if((ascii==75)&&(xraketp>=(xkadr)))
xraketp-=60-stoop;
if(xraketp
xraketp=xkadr+2;
if((ascii==77)&&(xraketp<=((wkadr-wraket)-(50-stoop)-2)))
xraketp+=60-stoop;
if(xraketp>(xkadr+wkadr-wraket))
xraketp=xkadr+wkadr-wraket-2;
setcolor(rraket);
rectangle(xraketp,yraketp,xraketp+wraket,yraketp+hraket);
}
void main()
{
if(level<6)
{
int driver = DETECT,mode,i;
initgraph(&driver,&mode,"c:\\tc\\bgi");
if((level<2)&&(level>1))
m();
else
{
textbackground(8);
clrscr();
setfillstyle(1,8);
floodfill(1,1,WHITE);
gotoxy(75,1);
printf("[%c]\nleval=%1.0f",'X',level);
gotoxy(1,30);
printf("Thichername is MrSoori (Mansoor Behzadi & Saeed Omidi) 1387");
}
setfillstyle(1,rkadr);
setcolor(WHITE);
rectangle(xkadr,ykadr,wkadr,hkadr);
floodfill(xkadr+1,ykadr+1,WHITE);
getch();
while(!(ascii==120))
{
if(timep==0)
timep=1;
raket(ascii);
while(!kbhit())
{
delay(stoop);
if(timep>0)
timep+=(float)stoop/1000;
if((int)timep>60)
{
settextstyle(1,0,2);
outtextxy(1,20,"You Win");
setcolor(5);
outtextxy(1,80,"press");
setcolor(12);
settextstyle(3,0,2);
outtextxy(1,100," b for cantinuo");
outtextxy(1,120," x for Exit");
while(!(ascii==120||ascii==98))
ascii=getch();
if(ascii==101)
exit(0);
else
if(ascii==98)
{
ytoop=100;
jtoop=1;
ascii=100;
timep=1;
stoop-=6;
level+=1.0;
main();
}
}
gotoxy(1,1);
printf("time=%0.2f",timep);
setcolor(rkadr);
raketc();
toop();
if (timep==0)
{
settextstyle(1,0,2);
outtextxy(1,20,"You Loss");
setcolor(5);
outtextxy(1,80,"press");
setcolor(12);
settextstyle(3,0,2);
outtextxy(1,100," b for Newgame");
outtextxy(1,120," x for Exit");
}
}
if(timep==0)
while(!(ascii==120||ascii==98))
ascii=getch();
else
ascii=getch();
if(timep==0)
{
if(ascii==101)
exit(0);
else
if(ascii==98)
{
level=1.5;
ytoop=100;
jtoop=1;
stoop=40;
ascii=100;
main();
}
}
}
closegraph();
}
else
{
clrscr();
gotoxy(10,10);
printf("end game and you is winner");
}
}
کلیدواژه ها: