C语言飞机大战源码Word格式文档下载.docx

上传人:b****5 文档编号:16275113 上传时间:2022-11-22 格式:DOCX 页数:21 大小:18.66KB
下载 相关 举报
C语言飞机大战源码Word格式文档下载.docx_第1页
第1页 / 共21页
C语言飞机大战源码Word格式文档下载.docx_第2页
第2页 / 共21页
C语言飞机大战源码Word格式文档下载.docx_第3页
第3页 / 共21页
C语言飞机大战源码Word格式文档下载.docx_第4页
第4页 / 共21页
C语言飞机大战源码Word格式文档下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言飞机大战源码Word格式文档下载.docx

《C语言飞机大战源码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言飞机大战源码Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。

C语言飞机大战源码Word格式文档下载.docx

else

{

SetPos(0,25);

"

errorcode01:

无法填充行,因为两个坐标的纵坐标(x)不相等"

;

system("

pause"

);

}

//把第x列,[y1,y2]之间的坐标填充为ch

voiddrawCol(intx,inty1,inty2,charch)

inty=y1;

while(y!

=y2+1)

SetPos(x,y);

y++;

//在a,b横坐标相同的前提下,把坐标[a,b]之间填充为ch

voiddrawCol(COORDa,COORDb,charch)

if(a.X==b.X)

drawCol(a.X,a.Y,b.Y,ch);

errorcode02:

无法填充列,因为两个坐标的横坐标(y)不相等"

//左上角坐标、右下角坐标、用row填充行、用col填充列

voiddrawFrame(COORDa,COORDb,charrow,charcol)

drawRow(a.Y,a.X+1,b.X-1,row);

drawRow(b.Y,a.X+1,b.X-1,row);

drawCol(a.X,a.Y+1,b.Y-1,col);

drawCol(b.X,a.Y+1,b.Y-1,col);

voiddrawFrame(intx1,inty1,intx2,inty2,charrow,charcol)

COORDa={x1,y1};

COORDb={x2,y2};

drawFrame(a,b,row,col);

voiddrawFrame(Frameframe,charrow,charcol)

COORDa=frame.position[0];

COORDb=frame.position[1];

voiddrawPlaying()

drawFrame(0,0,48,24,'

='

'

|'

//drawmapframe;

drawFrame(49,0,79,4,'

-'

//drawoutputframe

drawFrame(49,4,79,9,'

//drawscoreframe

drawFrame(49,9,79,20,'

//drawoperateframe

drawFrame(49,20,79,24,'

//drawothermessageframe

SetPos(52,6);

cout<

得分:

SetPos(52,7);

称号:

SetPos(52,10);

操作方式:

SetPos(52,12);

a,s,d,w控制战机移动。

SetPos(52,14);

p暂停游戏。

SetPos(52,16);

e退出游戏。

//在[a,b)之间产生一个随机整数

intrandom(inta,intb)

intc=(rand()%(a-b))+a;

returnc;

//在两个坐标包括的矩形框内随机产生一个坐标

COORDrandom(COORDa,COORDb)

intx=random(a.X,b.X);

inty=random(a.Y,b.Y);

COORDc={x,y};

booljudgeCoordInFrame(Frameframe,COORDspot)

if(spot.X>

=frame.position[0].X)

if(spot.X<

=frame.position[1].X)

if(spot.Y>

=frame.position[0].Y)

if(spot.Y<

returntrue;

returnfalse;

voidprintCoord(COORDa)

cout<

("

a.X<

"

a.Y<

)"

voidprintFrameCoord(Framea)

printCoord(a.position[0]);

-"

printCoord(a.position[1]);

intdrawMenu()

SetPos(30,1);

PlaneWar"

drawRow(3,0,79,'

drawRow(5,0,79,'

SetPos(28,4);

w和s选择,k确定"

SetPos(15,11);

1.简单的敌人"

SetPos(15,13);

2.冷酷的敌人"

drawRow(20,0,79,'

drawRow(22,0,79,'

SetPos(47,11);

简单的敌人:

SetPos(51,13);

简单敌人有着较慢的移动速度。

SetPos(24,21);

制作:

中北大学梦笔西谈"

intj=11;

SetPos(12,j);

>

//drawFrame(45,9,79,17,'

while

(1)

{if(_kbhit())

{

charx=_getch();

switch(x)

{

case'

w'

:

{

if(j==13)

{

SetPos(12,j);

cout<

 "

j=11;

SetPos(51,13);

            "

SetPos(47,11);

}

break;

}

s'

if(j==11)

j=13;

              "

冷酷的敌人:

冷酷的敌人移动速度较快。

k'

if(j==8)return1;

elsereturn2;

}

}

/*

DWORDWINAPIMusicFun(LPVOIDlpParamte)

//DWORDOBJ;

sndPlaySound(TEXT("

bgm.wav"

),SND_FILENAME|SND_ASYNC);

return0;

*/

/*==================theGameClass==================*/

classGame

public:

COORDposition[10];

COORDbullet[10];

Frameenemy[8];

intscore;

intrank;

intrankf;

stringtitle;

intflag_rank;

Game();

//初始化所有

voidinitPlane();

voidinitBullet();

voidinitEnemy();

//初始化其中一个

//voidinitThisBullet(COORD);

//voidinitThisEnemy(Frame);

voidplaneMove(char);

voidbulletMove();

voidenemyMove();

//填充所有

voiddrawPlane();

voiddrawPlaneToNull();

voiddrawBullet();

voiddrawBulletToNull();

voiddrawEnemy();

voiddrawEnemyToNull();

//填充其中一个

voiddrawThisBulletToNull(COORD);

voiddrawThisEnemyToNull(Frame);

voidPause();

voidPlaying();

voidjudgePlane();

voidjudgeEnemy();

voidShoot();

voidGameOver();

voidprintScore();

};

Game:

:

Game()

initPlane();

initBullet();

initEnemy();

score=0;

rank=25;

rankf=0;

flag_rank=0;

voidGame:

initPlane()

COORDcentren={39,22};

position[0].X=position[5].X=position[7].X=position[9].X=centren.X;

position[1].X=centren.X-2;

position[2].X=position[6].X=centren.X-1;

position[3].X=position[8].X=centren.X+1;

position[4].X=centren.X+2;

for(inti=0;

i<

=4;

position[i].Y=centren.Y;

for(inti=6;

=8;

position[i].Y=centren.Y+1;

position[5].Y=centren.Y-1;

position[9].Y=centren.Y-2;

drawPlane()

9;

SetPos(position[i]);

if(i!

=5)

cout<

O"

elseif(i==5)

|"

drawPlaneToNull()

"

}

initBullet()

10;

bullet[i].Y=30;

drawBullet()

if(bullet[i].Y!

=30)

{

SetPos(bullet[i]);

^"

drawBulletToNull()

=30)

COORDpos={bullet[i].X,bullet[i].Y+1};

SetPos(pos);

cout<

}

initEnemy()

COORDa={1,1};

COORDb={45,15};

8;

enemy[i].position[0]=random(a,b);

enemy[i].position[1].X=enemy[i].position[0].X+3;

enemy[i].position[1].Y=enemy[i].position[0].Y+2;

drawEnemy()

drawFrame(enemy[i].position[0],enemy[i].position[1],'

drawEnemyToNull()

'

}

Pause()

SetPos(61,2);

暂停中..."

charc=_getch();

while(c!

p'

c=_getch();

planeMove(charx)

if(x=='

a'

if(position[1].X!

=1)

for(inti=0;

=9;

position[i].X-=2;

if(position[7].Y!

=23)

position[i].Y+=1;

d'

if(position[4].X!

=47)

position[i].X+=2;

if(position[5].Y!

=3)

position[i].Y-=1;

bulletMove()

bullet[i].Y-=1;

if(bullet[i].Y==1)

drawThisBulletToNull(pos);

bullet[i].Y=30;

enemyMove()

for(intj=0;

j<

2;

j++)

enemy[i].position[j].Y++;

if(24==enemy[i].position[1].Y)

COORDa={1,1};

COORDb={45,3};

enemy[i].position[0]=random(a,b);

enemy[i].position[1].X=enemy[i].position[0].X+3;

enemy[i].position[1].Y=enemy[i].position[0].Y+2;

judgePlane()

8;

if(judgeCoordInFrame(enemy[i],position[j]))

SetPos(62,1);

坠毁"

drawFrame(enemy[i],'

+'

Sleep(1000);

GameOver();

break;

drawThisBulletToNull(COORDc)

SetPos(c);

drawThisEnemyToNull(Framef)

drawFrame(f,'

judgeEnemy()

for(intj=0;

j<

10;

if(judgeCoordInFrame(enemy[i],bullet[j]))

score+=5;

drawThisEnemyToNull(enemy[i]);

COORDa={1,1};

COORDb={45,3};

enemy[i].position[0]=random(a,b);

enemy[i].position[1].X=enemy[i].position[0].X+3;

enemy[i].position[1].Y=enemy[i].position[0].Y+2;

drawThisBulletToNull(bullet[j]);

bullet[j].Y=30;

Shoot()

if(bullet[i].Y==30)

bullet[i].X=position[5].X;

bullet[i].Y=position[5].Y-1;

break;

printScore()

if(score==120&

&

flag_rank==0)

rank-=3;

flag_rank=1;

elseif(score==360&

flag_rank==1)

rank-=5;

flag_rank=2;

elseif(score==480&

flag_rank==2)

flag_rank=3;

intx=rank/5;

SetPos(60,6);

score;

if(rank!

=rankf)

SetPos(60,7);

if(x==5)

title="

初级飞行员"

elseif(x==4)

中级飞行员"

elseif(x==3)

高级飞行员"

elseif(x==2)

王牌飞行员"

title;

rankf=rank;

void

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

当前位置:首页 > 小学教育 > 小升初

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

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