:: vBspiders Professional Network ::

:: vBspiders Professional Network :: (http://www.vbspiders.com/vb/index.php)
-   ÞÓã ÇáÈÑãÌÉ ÇáßÇÆäíÉ (http://www.vbspiders.com/vb/f174.html)
-   -   snake game source code (http://www.vbspiders.com/vb/t62147.html)

ÇáãÝÊÑÓ 05-01-2012 08:06 PM

ßæÏ PHP:

#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<string.h>
class Snake
{
 
int p1,p2,v1,v2,v3,e1,e2,prev,now,n,colr,dsp,cnt,dly,m;
 
int stp,egGen;
 
int xr,yr;
 
void caught();
 public:
  
long scr;
 
int strtX,strtY,endX,endY;
 
int pos***91;100***93;***91;2***93;;
 
void show();
 
void init();
 
void egg();
 
void transpose();
 
void gnrtCond();
 
void gnrtUnCond();
 
void check();
 
void checkEgg();
 
void move();
 
void chngDir();
 
void sndEt();
 
void sndCgt();
 
int test();
 
void score();
 
Snake();
 
Snake(Snake*);
 ~
Snake();
 };
Snake::Snake()
 {
 }
Snake::~Snake()
{

}
void Snake::checkEgg()
{
 if((
e1 == p1) && (e2 == p2))
 {
sndEt();
  
egg();
  
dly--;
  
score();
  
n++;
  }
}
void Snake::sndEt()
{
nosound();
 
sound(2500);
 
delay(2);
 
nosound();
}
void Snake::sndCgt()
{
nosound();
 for(
int x=1000;x>0;x--)
 {
sound(x);
  
delay(1);
  }
 
nosound();
}
void Snake::score()
char *p;

  
ltoa(scr,p,10);
  
settextstyle(8,0,1);
  
setcolor(0);
  
outtextxy(585,40,p);
  if(
egGen != 1){
  
scr scr dly 10;
  }
  
ltoa(scr,p,10);
  
setcolor(10);
  
outtextxy(585,40,p);

}
void Snake::gnrtCond()
{if(
367)
 {if(
now == && (prev != && prev != 2))
  {
pos***91;0***93;***91;0***93; = p1;
   
pos***91;0***93;***91;1***93; = p2 dsp;
   
prev now;
   }
  if(
now == && (prev != && prev != 1))
  {
pos***91;0***93;***91;0***93; = p1 dsp;
   
pos***91;0***93;***91;1***93; = p2;
   
prev now;
   }
  if(
now == && (prev != && prev != 2))
  {
pos***91;0***93;***91;0***93; = p1;
   
pos***91;0***93;***91;1***93; = p2 dsp;
   
prev now;
   }
  if(
now == && (prev != && prev != 4))
  {
pos***91;0***93;***91;0***93; = p1 dsp;
   
pos***91;0***93;***91;1***93; = p2;
   
prev now;
   }
}
}
void Snake::gnrtUnCond()
{
  if( 
prev == )
  {
pos***91;0***93;***91;0***93; = p1;
   
pos***91;0***93;***91;1***93; = p2 dsp;
   }
 if( 
prev == )
  {
pos***91;0***93;***91;0***93; = p1 dsp;
   
pos***91;0***93;***91;1***93; = p2;
   }
 if( 
prev == )
  {
pos***91;0***93;***91;0***93; = p1;
   
pos***91;0***93;***91;1***93; = p2 dsp;
   }
 if( 
prev == )
  {
pos***91;0***93;***91;0***93; = p1 dsp;
   
pos***91;0***93;***91;1***93; = p2;
   }
 
p1 pos***91;0***93;***91;0***93;;
 
p2 pos***91;0***93;***91;1***93;;
}
void Snake::check()
{
 if(
p1 endX)
  {
p1 strtX;}
 else if(
p1 strtX)
  {
p1 endX;}

 if(
p2 endY)
  {
p2 strtY;}
 else if(
p2 strtY)
  {
p2 endY;}

 
pos***91;0***93;***91;0***93; = p1;
 
pos***91;0***93;***91;1***93; = p2;
for(
int i 1;n;i++)
  { if(
p1 == pos && p2 == pos***91;1***93;)  {caught();
   break;
  }
 }
}
void Snake::show()
{
  
int x getcolor();
  if(
egGen != 1)
  {
  
setcolor(getbkcolor());
  
setfillstyle(1,getbkcolor());
  
fillellipse(v1,v2,yr,yr);
   }
  else
   
egGen 0;
  if(
egGen == 2)
   
egGen--;
  
setcolor(colr);
  
setfillstyle(1,9);
  if(
now == || now == 2)
   
fillellipse(pos***91;0***93;***91;0***93;,pos***91;0***93;***91;1***93;,xr,yr);
  else if(
now == || now == 1)
   
fillellipse(pos***91;0***93;***91;0***93;,pos***91;0***93;***91;1***93;,yr,xr);
  
setcolor(x);
}
void Snake::transpose()
int i,j,x,y;
   
p1 pos***91;0***93;***91;0***93;;
   
p2 pos***91;0***93;***91;1***93;;
   if(!
egGen){
   
v1 pos***91;n-1***93;***91;0***93;;
   
v2 pos***91;n-1***93;***91;1***93;;
   }
   else
    
egGen 0;
   for(
n-1;>= 1;i--)
   {
pos pos***91;i-1***93;***91;0***93;;    pos***91;1***93; = pos***91;i-1***93;***91;1***93;;
   }
}
void Snake::move()
int st 0;
  do{
   if(!
kbhit())
   {
checkEgg();
    if(!
st)
     
show();
    else
     
st 0;
    
delay(dly/4);
    
transpose();
    
delay(dly/4);
    
gnrtUnCond();
    
delay(dly/4);
    
check();
   
delay(dly/4);
    }
   else if(
stp){
   
chngDir();
   
gnrtCond();
   
check();
   
show();
   
st 1;
   }
   }while(
stp);
}
void Snake::init()
{
time_t tm;
 
srand(time(&tm));
 
dsp 20;
 
5;
 
prev 4;
 for(
int i 4;>= 0;i--)
 {
pos 201 + (1) * dsp;  pos***91;1***93; = 301;
  }
  
strtX 21;
  
strtY 21;
  
endX 481;
  
endY 361;
  
colr 14;
  
now prev;
  
dsp 20;
  
stp 111;
  
cnt = -1;
  
scr 0;
  
dly 150;
   
xr 3;
   
yr 9;
  
egg();
  
egGen 1;
  
score();
  
int x getcolor();
  
setlinestyle(0,1,3);
  
setcolor(15);
  
rectangle(strtX-15,strtY-15,endX+15,endY+15);
  
rectangle(endX+25,strtY-15,getmaxx()-15,endY+15);
  
rectangle(strtX-15,endY+25,getmaxx()-15,getmaxy()-5);
  
line(endX+25,strtY+75,getmaxx()-15,strtY+75);
  
line(endX+25,strtY+200,getmaxx()-15,strtY+200);
  
line(endX+25,strtY+275,getmaxx()-15,strtY+275);
  
setlinestyle(0,1,1);
  
settextstyle(8,0,1);
  
setcolor(11);
  
outtextxy(514,40,"SCORE");
  
setcolor(14);
  
settextstyle(11,0,5);
  
outtextxy(524,110," CONTROLS ");
  
outtextxy(522,135,"p = PAUSE");
  
outtextxy(522,155,"g = RESUME");
  
outtextxy(522,175,"e = EXIT");
  
outtextxy(513,195,"ARROWS");
  
outtextxy(512,205,"    -MOVEMENT");
  
setcolor(14);
  
settextstyle(4,0,9);
  
outtextxy(getmaxx()-500,getmaxy()-110,"SNAKE");
  
settextstyle(8,0,1);
  
setcolor(x);
}
void Snake::caught()
{
 
stp 0;
 
sndCgt();
for(
int i=0;i<=7;i++)
 {if(
i%2)
  {
setcolor(10);
   
outtextxy(512,250,"GAME OVER");
   
delay(900);
   }
  else
  {
setcolor(0);
   
outtextxy(512,250,"GAME OVER");
   
delay(500);
  }
  }
sleep(1);
}
void Snake::chngDir()
{
int clr;
 
fillsettingstype *p;
 
char x getch();
 if(
== 72)
  
now 8;
 else if(
== 77)
  
now 4;
 else if(
== 80)
  
now 2;
 else if(
== 75)
  
now 1;
 else if(
== 'e')
  
caught();
 else if(
== 'p')
 {
//int y = getcolor();
  
int twnkl 1;
  
settextstyle(11,0,9);
  while(
1)
  {if(
kbhit())
   {
int c getch();
    if(
== 'g')
    {
clr getcolor();
     
setcolor(0);
     
rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
     
outtextxy(endX+60,endY-29,"PAUSE");
     break;
     }
    }
   else
   {if(
twnkl%2)
    {
clr getcolor();
     
setcolor(10);
     
rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
     
outtextxy(endX+60,endY-29,"PAUSE");
     
setcolor(clr);
      
delay(1000);
     }
    else
    {
     
clr getcolor();
     
setcolor(0);
     
rectangle(endX+40,endY-10,getmaxx()-35,getmaxy()-160);
     
outtextxy(endX+60,endY-29,"PAUSE");
     
delay(1000);
    }
   }
   
twnkl++;
  }
    
settextstyle(8,0,1);
 }
}
Snake::Snake(Snake *p)
{
 *
p=NULL;
}
void Snake::egg()
{ do
  {
e1 = (rand() % 100) * dsp strtX;
   
e2 = (rand() % 100) * dsp strtY;
   }while(
test());
  
int x getcolor();
  
setcolor(7);
  
setfillstyle(1,random(15)+1);
  
fillellipse(e1,e2,xr+2,xr+2);
  
setcolor(x);
  
egGen 2;
}
int Snake::test()
{ for(
int i=0;i<n;i++)
  {if(
e1 == pos && e2 == pos***91;1***93;)    break;
   if(
v1 == e1 && v2 == e2)
    break;
   if((
e1 >= endX+1) || (e2 >= endY+1))
    break;
   }
 if(
!= n)
  return 
1;
 else
  return 
0;
}

void main()
{
Snake snk;
 
int gd=DETECT,gm,i,j,k,x,y;
 
clrscr();
 
initgraph(&gd,&gm,"E:\Turboc3");
 
snk.init();
 
snk.move();

 
closegraph();
 
restorecrtmode();
 } 

with my regard
Almoftarse

script-login 05-02-2012 10:47 PM

ÑÏ: snake game source code
 
ãÔßæÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ


ÇáÓÇÚÉ ÇáÂä 01:00 AM


[ vBspiders.Com Network ]


SEO by vBSEO 3.6.0