/*这个打泡泡游戏感觉实在写得不怎么样,本来我想好好的写一个的,可我实在是静不下心来,为了实现游戏功能,我这里加一个语句,那里加一个语句,
结果当然是当你再想调整或增加某些功能时,会变得异常繁杂,
而且游戏有点小错误,我也不想改了,等哪天实在闲得没事做的时候,
再好好重新做一个.
做个反面教材吧!
*/
#include
#include
#include
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define SPACE 0x3920
struct PUBUNIT
{
int x;
int y;
}PubUnit[20][10];
struct BBDATE
{
int x;
int y;
char state;
}bb[10];
int dflag=1;
int PubState[20][10];
int HeadLine;
int HeadPubCount;
int AllPubCount;
int key;
int bbx,bby;
int BBState=0;
void DownPub(void);
void play_game(void);
DrawPub(int i,int j,int state)/*画泡泡函数*/
{
if(state)
setcolor(GREEN);
else setcolor(BLACK);
circle(PubUnit[i][j].x+7,PubUnit[i][j].y+7,7);
}
void DrawPPman(int j)/*画泡泡人函数*/
{
static oldj=4;
static char flag=0;
line(PubUnit[19][j].x+7,PubUnit[19][j].y,PubUnit[19][j].x+7,PubUnit[19][j].y+14);
line(PubUnit[19][j].x+7,PubUnit[19][j].y+2,PubUnit[19][j].x,PubUnit[19][j].y+14);
line(PubUnit[19][j].x+7,PubUnit[19][j].y+2,PubUnit[19][j].x+14,PubUnit[19][j].y+14);
line(PubUnit[19][j].x,PubUnit[19][j].y+14,PubUnit[19][j].x+14,PubUnit[19][j].y+14);
if(flag)
{setcolor(BLACK);
line(PubUnit[19][oldj].x+7,PubUnit[19][oldj].y,PubUnit[19][oldj].x+7,PubUnit[19][oldj].y+14);
line(PubUnit[19][oldj].x+7,PubUnit[19][oldj].y+2,PubUnit[19][oldj].x,PubUnit[19][oldj].y+14);
line(PubUnit[19][oldj].x+7,PubUnit[19][oldj].y+2,PubUnit[19][oldj].x+14,PubUnit[19][oldj].y+14);
line(PubUnit[19][oldj].x,PubUnit[19][oldj].y+14,PubUnit[19][oldj].x+14,PubUnit[19][oldj].y+14);
oldj=j;setcolor(GREEN);
}
else flag=1;
}
void GameGraph(void)/*游戏画面和各项数据初始化函数*/
{int i,j;
int x,y;
int driver=DETECT,gm;
registerbgidriver(EGAVGA_driver);
initgraph(&driver,&gm,"");
rectangle(99,99,251,401);
x=y=100;
for(i=0;i<20;i++)
{for(j=0;j<20;j++)
{PubUnit[i][j].x=x;PubUnit[i][j].y=y;x+=15;}
y+=15;x=100;
}
for(i=0;i<5;i++) /*画50个泡泡*/
for(j=0;j<10;j++)
{PubState[i][j]=1;DrawPub(i,j,PubState[i][j]);}
DrawPPman(4);
HeadLine=4;
AllPubCount=50;
HeadPubCo