计算机技术基础c语言课程设计潜艇大战Word文档格式.docx

上传人:b****4 文档编号:13816755 上传时间:2022-10-13 格式:DOCX 页数:9 大小:40.86KB
下载 相关 举报
计算机技术基础c语言课程设计潜艇大战Word文档格式.docx_第1页
第1页 / 共9页
计算机技术基础c语言课程设计潜艇大战Word文档格式.docx_第2页
第2页 / 共9页
计算机技术基础c语言课程设计潜艇大战Word文档格式.docx_第3页
第3页 / 共9页
计算机技术基础c语言课程设计潜艇大战Word文档格式.docx_第4页
第4页 / 共9页
计算机技术基础c语言课程设计潜艇大战Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

计算机技术基础c语言课程设计潜艇大战Word文档格式.docx

《计算机技术基础c语言课程设计潜艇大战Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机技术基础c语言课程设计潜艇大战Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

计算机技术基础c语言课程设计潜艇大战Word文档格式.docx

#defineKEY_ESC0x01

#defineKEY_SPACE0x39

#defineKEY_LEFT0x4b

#defineKEY_RIGHT0x4d

intspeed=10000;

charkey_state[128],key_pressed[128];

/*键盘操作用的变量*/

intscore=0;

/*得分*/

charscorestr[10];

/*输出分数的变量*/

structFire/*子弹的结构体*/

{

intx;

inty;

intstart;

/*是否发射炮弹*/

}amyfire[6];

/*屏幕上最多有5个敌人可以发子弹*/

structPlay/*玩家的结构体*/

structFirefire[6];

life;

}play;

structAmy/*敌人的结构体*/

intspeed;

/*敌人的速度*/

intcolor;

intdirection;

}amy[6];

voidInitGraph(void);

/*图形初始化*/

voidCloseGraph(void);

/*图形结束*/

voidGamePlay(void);

/*具体玩游戏*/

voidDrawPlay(void);

/*画玩家*/

voidDrawAmy(inti);

/*画敌人*/

voidDrawFire(intx,inty,intn);

/*画子弹,0去除,1显示*/

voidDrawAmyFire(intx,inty,intn);

voidDrawBlack(intx,inty,intcolor);

/*去除原来地方的物体*/

voidPrScore();

/*输出得分*/

intGetKey(intScanCode);

/*这里开始都是按键函数*/

voidinterruptfar(*OldInt9Handler)();

voidfarinterruptNewInt9();

voidInstallKeyboard();

voidShutDownKeyboard();

voidmain(void)

InitGraph();

GamePlay();

CloseGraph();

}

voidInitGraph(void)/*图形初始化*/

intgd=DETECT,gm;

initgraph(&

gd,&

gm,"

c:

\\tc"

);

cleardevice();

InstallKeyboard();

voidDrawPlay(void)/*画玩家*/

setfillstyle(SOLID_FILL,6);

bar(play.x-20,play.y-10,play.x+20,play.y);

setfillstyle(SOLID_FILL,4);

bar(play.x-20,play.y-10,play.x-10,play.y);

voidDrawAmy(inti)/*画敌人*/

setfillstyle(SOLID_FILL,amy[i].color);

bar(amy[i].x-20,amy[i].y-10,amy[i].x+20,amy[i].y);

setfillstyle(SOLID_FILL,GREEN);

if(amy[i].direction==1)

bar(amy[i].x-20,amy[i].y-10,amy[i].x-10,amy[i].y);

else

bar(amy[i].x+10,amy[i].y-10,amy[i].x+20,amy[i].y);

voidDrawBlack(intx,inty,intcolor)/*去除原来地方的物体*/

setfillstyle(SOLID_FILL,color);

bar(x-20,y-10,x+20,y);

voidDrawFire(intx,inty,intn)/*画子弹,0去除,1显示*/

if(n==0)

setfillstyle(SOLID_FILL,BLUE);

setfillstyle(SOLID_FILL,0);

setcolor(BLUE);

fillellipse(x,y,5,5);

voidDrawAmyFire(intx,inty,intn)/*画子弹,0去除,1显示*/

setfillstyle(SOLID_FILL,YELLOW);

/*敌人的炮弹是黄的*/

fillellipse(x,y,3,3);

voidPrScore()/*输出得分*/

setfillstyle(SOLID_FILL,8);

/*把原来分数去除*/

bar(30,0,200,40);

setcolor(11);

/*输出新得分*/

settextstyle(0,0,2);

sprintf(scorestr,"

%d"

score);

outtextxy(30,20,scorestr);

voidGamePlay(void)/*具体玩游戏*/

inti,j;

bar(0,100,640,480);

bar(0,0,640,99);

play.x=200;

play.y=99;

/*玩家初始位置*/

for(i=0;

i<

6;

i++)

play.fire[i].start=0;

/*一开始的子弹都为没发射状态*/

amyfire[i].start=0;

amy[i].life=0;

play.life=1;

DrawPlay();

PrScore();

randomize();

while

(1)

for(i=0;

i++)/*查找玩家是否有发射的子弹*/

{

if(play.fire[i].start==1)/*发射的子弹*/

DrawFire(play.fire[i].x,play.fire[i].y,0);

/*去除原来子弹位置*/

play.fire[i].y+=3;

DrawFire(play.fire[i].x,play.fire[i].y,1);

/*显示新位置*/

for(j=0;

j<

j++)/*判断子弹是否击中敌人*/ 

if(play.fire[i].x>

(amy[j].x-22)&

&

play.fire[i].x<

(amy[j].x+22)&

play.fire[i].y>

(amy[j].y-14)&

play.fire[i].y<

amy[j].y+5)/*击中敌人*/

play.fire[i].start=0;

/*子弹消失*/

amy[j].life=0;

/*敌人生命结束*/

score+=10;

/*得分增加*/

DrawBlack(amy[j].x,amy[j].y,BLUE);

/*去除敌人*/

PrScore();

}

if(play.fire[i].y>

480)/*子弹超出屏幕就等于消失*/

i++)/*敌人炮弹的产生*/

if(amy[i].life==1&

amy[i].color<

14&

amyfire[i].start==0)/*敌人发射炮弹的条件*/

amyfire[i].start=1;

amyfire[i].x=amy[i].x;

amyfire[i].y=amy[i].y-10;

i++)/*敌人炮弹移动以及移动*/

if(amyfire[i].start==1)/*子弹存在*/

DrawAmyFire(amyfire[i].x,amyfire[i].y,0);

amyfire[i].y-=2;

DrawAmyFire(amyfire[i].x,amyfire[i].y,1);

/*画敌人炮弹新位置*/

if(amyfire[i].x>

(play.x-14)&

amyfire[i].x<

(play.x+14)&

(amyfire[i].y+3)<

100)/*击中玩家*/

play.life=0;

amyfire[i].start=0;

DrawBlack(play.x,play.y,8);

/*去除玩家*/

break;

if(amyfire[i].y<

96)/*敌人炮弹超出海洋就消失*/

setfillstyle(SOLID_FILL,8);

setcolor(8);

fillellipse(amyfire[i].x,amyfire[i].y,3,3);

delay(speed);

/*间隔时间可以自己定*/

if(play.life!

=1)/*玩家被击中*/

if(a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1