您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页黄金矿工

黄金矿工

来源:榕意旅游网


#include \"Conio.h\"

#include \"graphics.h\"

#include \"bios.h\"

#include \"stdlib.h\"

#include \"math.h\"

#define closegr closegraph

#define VK_LEFT 0x4B00

#define VK_RIGHT 0x4D00

#define VK_UP 0x4800

#define VK_DOWN 0x5000

#define VK_SPACE 0x3920

#define VK_ESC 0x011B

typedef struct

{

int x1,y1,x2,y2;

int length;

int jiaodu;

int n;

}Line;

typedef struct

{

int wux[10];

int wuy[10];

int sum;

}wu;

/***********************************/

void kaishiye(int s);

void caozuoye(int jian,int* s,int* zhuangtai);

/************************************/

void chushiline(Line* l,int x1,int y1,int length,int jiaodu,int n);

void youxiye();

void hualine(Line* l);

void zhuangline(Line* l);

void kongzhiline(Line* l,int key);

void chushiwu(wu* w);

void huawu(wu* w);

void panduan(Line* l,wu* w,int* zhuangtai);

void y3hua();

void go();

void initgr(void)

{

int gd = EGA, gm = EGAHI;

registerbgidriver(EGAVGA_driver);

initgraph(&gd, &gm, \"\");

}

int main(void)

{

initgr();

go();

getch();

closegr();

return 0;

}

void youxiye() /* 游戏页 */

{

setfillstyle(SOLID_FILL,15);

bar(0,0,639,49);

setfillstyle(SOLID_FILL,6);

bar(0,49,639,349);

setcolor(BLUE);

line(0,49,638,49);

setcolor(BLUE);

circle(320,25,7);

setcolor(BLUE);

circle(320,38,12);

setcolor(BLUE);

}

void go()

{

int page=0;

int jian;

int Y1_s=1;

int zhuangtai=1;

Line l;

wu w;

chushiline(&l,320,50,60,-27,2);

chushiwu(&w);

while(1)

{

delay(10);

page=(page+1)%2;

if(bioskey(1))

jian=bioskey(0);

else

jian=0;

if(jian==VK_ESC)

break;

switch(zhuangtai)

{

case 1:

caozuoye(jian,&Y1_s,&zhuangtai);

break;

case 2:

zhuangline(&l);

kongzhiline(&l,jian);

panduan(&l,&w,&zhuangtai);

break;

case 3:

break;

}

setactivepage(page);

switch(zhuangtai)

{

case 1:

kaishiye(Y1_s);

break;

case 2:

youxiye();

hualine(&l);

huawu(&w);

break;

case 3:

y3hua();

break;

}

setvisualpage(page);

}

}

void kaishiye(int s) /* 开始页 */

{

setfillstyle(SOLID_FILL,0);

bar(0,0,639,349);

setbkcolor(RED);

setcolor(YELLOW);

settextstyle(0,0,7);

outtextxy(30,45,\"GOLD miner\");

setcolor(GREEN);

settextstyle(0,0,3);

outtextxy(380,320,\"start\");

outtextxy(540,320,\"exit\");

setcolor(BLUE);

settextstyle(0,0,2);

outtextxy(400,250,\"by_libby\");

setcolor(BLUE);

setfillstyle(SOLID_FILL,BLUE);

if(s==1)

fillellipse(370,330,12,12);

else if(s==2)

fillellipse(530,330,12,12);

}

void caozuoye(int jian,int* s,int* zhuangtai) /* 操作页 */

{

switch(jian)

{

case VK_LEFT:

*s=1;

break;

case VK_RIGHT:

*s=2;

break;

case VK_SPACE:

if(*s==1)

*zhuangtai=2;

else

*zhuangtai=0;

break;

case VK_ESC:

*zhuangtai=0;

break;

}

}

void chushiline(Line* l,int x1,int y1,int length,int jiaodu,int n)

{

l->x1=x1;

l->y1=y1;

l->length=length;

l->jiaodu=jiaodu;

l->n=n;

l->x2=320;

l->y2=110;

}

void hualine(Line* l)

{

setlinestyle(3,USERBIT_LINE,3);

line(l->x1,l->y1,l->x2,l->y2);

}

void zhuangline(Line* l)

{

l->x2=l->x1+l->length*cos(((1.0*l->jiaodu)/18)*M_PI);

l->y2=l->y1+l->length*sin(((1.0*l->jiaodu)/18)*M_PI);

if(l->jiaodu==-19)

{

l->n=2;

}

if(l->jiaodu==-35)

{

l->n=1;

}

if(l->n==2)

{

l->jiaodu--;

}

if(l->n==1)

{

l->jiaodu++;

}

if(l->n==3)

{

if(l->x2<=640&&l->x2>=0&&l->y2<=350)

{

l->length=l->length+20;

}

else

l->n=4;

}

if(l->n==4)

{

l->length=l->length-20;

if(l->length<=60)

l->n=2;

}

}

void kongzhiline(Line* l,int key)

{

switch(key)

{

case VK_DOWN :

{

if(l->n!=4)

l->n=3;

}

break;

case VK_UP :

{

l->n=4;

}

}

}

void chushiwu(wu* w)

{

int n;

for(n=0;n<10;n++)

{

w->wux[n]=rand()%620+10;

w->wuy[n]=rand()%220+110;

}

}

void huawu(wu* w)

{

int n;

for(n=0;n<10;n++)

{

setcolor(3);

setfillstyle(SOLID_FILL,YELLOW);

setlinestyle(0,USERBIT_LINE,1);

fillellipse(w->wux[n],w->wuy[n],20,20);

}

}

void panduan(Line* l,wu* w,int* zhuangtai)

{

int n;

if(w->sum<=10)

{

for(n=0;n<10;n++)

{

if(sqrt(1.0*(l->x2-w->wux[n])*(l->x2-w->wux[n])+1.0*(l->y2-w->wuy[n])*(l->y2-w->wuy[n]))<=23)

{

l->n=4;

if(l->length>80)

{

w->wux[n]=l->x2;

w->wuy[n]=l->y2;

}

} }

}

else

else

{

w->wux[n]=15+25*n;

w->wuy[n]=25;

w->sum++;

}

{

*zhuangtai=3;

}

}

void y3hua()

{

setfillstyle(SOLID_FILL,3);

bar(0,0,639,349);

setbkcolor(BLUE);

setcolor(YELLOW);

settextstyle(0,0,7);

outtextxy(130,50,\"You Won\");

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务